亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android自定義Drawable實現圓角效果

發布時間:2020-09-30 15:28:43 來源:腳本之家 閱讀:157 作者:馬樂恒 欄目:移動開發

Drawable是一種可繪制資源的載體,如圖形、圖像等。在實際開發中可以作為view的背景。主要有靜態和動態兩種方式,靜態通過xml描述使用,動態即自定義Drawable。本文實現一個圓形和圓角的背景圖片效果。

效果圖:

Android自定義Drawable實現圓角效果

實現方式:

1.初始化一個BitmapShader著色器對象;
2.將著色器對象set給畫筆;
3.在畫布上繪制圓或圓角即可;
4.使用,view.setBackgroundDrawable
或者 ImageView.setImageDrawable

package com.mydrawable.musk;

import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Shader;
import android.graphics.drawable.Drawable;

/**
 * Created by musk.
 */

public class CircleDrawable extends Drawable {

 private Paint mPaint;
 private int mWidth;
 private Bitmap mBitmap;

 public CircleDrawable(Bitmap bitmap) {
 mBitmap = bitmap;
 //著色器,設置橫向和縱向的著色模式為平鋪
 BitmapShader bitmapShader = new BitmapShader(mBitmap,
  Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);

 mPaint = new Paint();
 mPaint.setAntiAlias(true);
 mPaint.setDither(true);
 mPaint.setShader(bitmapShader);
 mWidth = Math.min(mBitmap.getWidth(), mBitmap.getHeight());
 }

 //繪制
 @Override
 public void draw(Canvas canvas) {
 canvas.drawCircle(mWidth / 2, mWidth / 2, mWidth / 2, mPaint);
 }

 //設置透明度值
 @Override
 public void setAlpha(int alpha) {
 mPaint.setAlpha(alpha);
 }

 //設置顏色過濾器
 @Override
 public void setColorFilter(ColorFilter colorFilter) {
 mPaint.setColorFilter(colorFilter);
 }

 //返回不透明度
 @Override
 public int getOpacity() {
 return PixelFormat.TRANSLUCENT;
 }

 //返回圖片實際的寬高
 @Override
 public int getIntrinsicWidth() {
 return mWidth;
 }

 @Override
 public int getIntrinsicHeight() {
 return mWidth;
 }
}

自定義Drawable有五個方法必須覆寫,draw()、setAlpha()、setColorFilter()、getOpacity(),另外的getIntrinsicWidth()和getIntrinsicHeight()是在view設置wrap_content時設置drawable的寬度和高度。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿拉尔市| 台州市| 安远县| 濮阳市| 舞钢市| 峨眉山市| 广南县| 贡山| 双城市| 北川| 琼结县| 蓝山县| 齐河县| 盖州市| 尉犁县| 清丰县| 武宣县| 海城市| 桂阳县| 临夏市| 丰城市| 岳阳市| 车险| 长汀县| 美姑县| 山阴县| 黄梅县| 简阳市| 江安县| 兴文县| 昭觉县| 垫江县| 正安县| 马尔康县| 徐闻县| 喜德县| 景德镇市| 池州市| 宁城县| 大姚县| 金湖县|