真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android自定義Drawable實現(xiàn)圓角效果

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

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供秀嶼網(wǎng)站建設(shè)、秀嶼做網(wǎng)站、秀嶼網(wǎng)站設(shè)計、秀嶼網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、秀嶼企業(yè)網(wǎng)站模板建站服務(wù),十載秀嶼做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

效果圖:

Android自定義Drawable實現(xiàn)圓角效果

實現(xiàn)方式:

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;
 //著色器,設(shè)置橫向和縱向的著色模式為平鋪
 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);
 }

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

 //設(shè)置顏色過濾器
 @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設(shè)置wrap_content時設(shè)置drawable的寬度和高度。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


本文標(biāo)題:Android自定義Drawable實現(xiàn)圓角效果
網(wǎng)址分享:http://weahome.cn/article/gpjoii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部