没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Android自定义自定义Drawable实现圆形和圆角实现圆形和圆角
主要为大家详细介绍了Android自定义Drawable实现圆形和圆角,具有一定的参考价值,感兴趣的小伙伴们可以参
考一下
本文实例为大家分享了自定义Drawable实现圆形和圆角的具体代码,供大家参考,具体内容如下
圆形
package com.customview.widget;
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;
import android.support.annotation.IntRange;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
/**
* 自定义Drawable 实现圆形图片
* Created by hust_twj on 2017/9/26.
*/
public class CircleDrawable extends Drawable {
private Paint mPaint;
private int mWidth; //宽/高,直径
private Bitmap mBitmap;
public CircleDrawable(Bitmap bitmap) {
this.mBitmap = bitmap;
BitmapShader bitmapShader = new BitmapShader(mBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);//着色器 水平和竖直都需要填充满
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setShader(bitmapShader);
mWidth = Math.min(mBitmap.getWidth(), mBitmap.getHeight()); //宽高的最小值作为直径
}
@Override
public void draw(@NonNull Canvas canvas) {
canvas.drawCircle(mWidth/2, mWidth/2, mWidth/2, mPaint); //绘制圆形
}
@Override
public void setAlpha(@IntRange(from = 0, to = 255) int i) {
mPaint.setAlpha(i);
}
@Override
public void setColorFilter(@Nullable ColorFilter colorFilter) {
mPaint.setColorFilter(colorFilter);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT; //设置系统默认,让drawable支持和窗口一样的透明度
}
//还需要从重写以下2个方法,返回drawable实际宽高
@Override
public int getIntrinsicWidth() {
return mWidth;
}
@Override
public int getIntrinsicHeight() {
return mWidth;
}
}
圆角:
package com.customview.widget;
资源评论
weixin_38651540
- 粉丝: 5
- 资源: 916
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功