android 带弧形背景,[Android日常]绘制弧形渐变背景
最近要修改用戶空間頭部信息顯示,參考了好多APP的用戶空間,都有一個弧形的背景,看著挺漂亮的。實現這種效果,有兩種實現方式:1、作圖;2、通過代碼進行繪制。今天就講講如何通過canvas進行繪制。
一、用到的知識點
1、Android或或者Java中繪圖需要用到Canvas和Paint類,一個是畫布,一個是畫筆;
2、canvas.drawRect和canvas.drawArc的使用;
3、LinearGradient線性漸變和Paint.setShader的使用;
二、具體代碼
public class ArcBackgroundView extends View {
private Paint mPaint;
private int mStartColor, mEndColor;
public ArcBackgroundView(Context context) {
this(context, null);
}
public ArcBackgroundView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public ArcBackgroundView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setStyle(Paint.Style.FILL);
mStartColor = ContextCompat.getColor(context, R.color.top_gradient_start);
mEndColor = ContextCompat.getColor(context, R.color.top_gradient_end);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
LinearGradient linearGradient = new LinearGradient(0,0, width, height, mStartColor, mEndColor, Shader.TileMode.CLAMP);
mPaint.setShader(linearGradient);
canvas.drawRect(new Rect(0, 0 , width, height-20), mPaint);
RectF oval = new RectF(0, height-40, width, height);
canvas.drawArc(oval,0,180,false,mPaint);//畫圓弧,這個時候,繪制沒有經過圓心
}
總結
以上是生活随笔為你收集整理的android 带弧形背景,[Android日常]绘制弧形渐变背景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sbo是什么币
- 下一篇: android gdb 远程调试工具,A