国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android自定義Drawable實現圓角效果

2019-10-22 18:29:07
字體:
來源:轉載
供稿:網友

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

效果圖:

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的寬度和高度。

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北辰区| 高要市| 黔西| 宣城市| 修水县| 牙克石市| 珠海市| 玉环县| 永胜县| 鄄城县| 红河县| 荔浦县| 湘潭县| 库车县| 临潭县| 太和县| 东安县| 临朐县| 资溪县| 伊宁市| 荣昌县| 镇赉县| 岗巴县| 章丘市| 神池县| 万年县| 凭祥市| 茶陵县| 米脂县| 根河市| 昌宁县| 阿瓦提县| 肥乡县| 通榆县| 民和| 建水县| 博客| 长兴县| 始兴县| 清镇市| 苏尼特左旗|