绘制系列(十八)-自定义Drawable

本文详细介绍了如何自定义Drawable,重点讲述了需要重写的draw()、getOpacity()、setBounds()方法,以及Drawable的使用方式,如通过ImageView的setImageDrawable()和View的setBackgroundDrawable()。还探讨了自定义Drawable对View宽高影响的原理,并给出了具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义Drawable

public class RoundRectDrawable extends Drawable {

	 public RoundRectDrawable(Bitmap bitmap) {
    mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

    mBitmap=bitmap;


}
public Paint getPaint(){

    return mPaint;
}


@Override
public void draw( Canvas canvas) {
    canvas.drawRoundRect(mBounds,20,20,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 void setBounds(int left, int top, int right, int bottom) {
    super.setBounds(left, top, right, bottom);
    Log.d("TAG", "left=" + left + ",top=" + top + ",right=" + right + ",bottom=" + bottom);
    BitmapShader shader = new BitmapShade
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值