安卓凹凸自定义View

news/2024/7/17 5:06:51
这个是产品的效果图
然后实际运行的结果

那到这个需求感觉还是很简单的,让美术出了一张图,然后我把这个背景图做成了.9图,然而,并没有什么卵用,最大的原因就是background被拉伸、挤压,高度在不同的机型显示的不一样,但是图片的半圆缺角是不变的,所以想想还是写个View。


自定义属性设置颜色背景


 public class CouponTextView extends TextView {

    private Paint mPaint;

    private Context mContext;

    private int mColor;

    public CouponTextView(Context context) {

        this(context, null);

    }

public CouponTextView(Context  context, AttributeSet attrs) {

this(context, attrs, 0);

    }

public CouponTextView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CouponTextView);

        mColor = ContextCompat.getColor(context, R.color.title_orange);

        mColor = array.getColor(R.styleable.CouponTextView_bg_color, mColor);

        mContext = context;

        initPaint();

        array.recycle();

    }

private void initPaint() {

mPaint =new Paint();

        mPaint.setColor(mColor);

        mPaint.setStrokeWidth(12f);

        mPaint.setAntiAlias(true);

    }

@Override

    protected void onDraw(Canvas canvas) {

RectF rectf =new RectF(0, 0, getMeasuredWidth(), getMeasuredHeight());

        canvas.drawRect(rectf, mPaint);

        mPaint.setColor(ContextCompat.getColor(mContext, R.color.white));

      canvas.drawCircle(0, 50,20, mPaint);

        super.onDraw(canvas);

    }

}


代码非常简单,不作解释,很久没有发文,先水一篇,哈哈哈

ps(再改一下,其实这个背景颜色没必要设置,画个半圆就可以了,背景颜色直接设置backGround就可以了,这里写多了。。。)


http://www.niftyadmin.cn/n/1934958.html

相关文章

网站一直优化不动,是不是被惩罚?

SEO是一个千变万化的工作,你的每一个优化策略,都决定网站不同的走向,在很长一段时期中,我们通常会遇到各种问题,比如:网站一直优化不动。 长期停留在某个阶段,这让SEO人员,显得无所…

leetcode算法题解(Java版)-2-最长回文子串

一、int数字反转 题目描述Reverse digits of an integer. Example1: x 123, return 321Example2: x -123, return -321 思路: 题目很简单,需要注意的是:int型是32位的。1000000003 反转后就超了!所以需要包装类Integer中的最大值…

浅谈 串行信号 转换成 并行信号 原理

注 : 文中讲述的原理是推理和探讨 , 和现实中的实现不一定完全相同 。 开始之前, 可以先参考看看我之前写的两篇文章 : 《设计一个 硬件 实现的 Dictionary(字典)》 https://www.cnblogs.com/KSongKing/p…

python学习之路——命名关键字参数、函数对象、函数嵌套、名称空间与作用域、闭包函数...

命名关键字参数:在定义函数时,*与**之间参数称之为命名关键字参数 特点:在调用函数时,命名关键字参数必须按照keyvalue的形式传值 函数对象 函数是第一类对象:指的是函数的内存地址可以像一个变量值一样去使用 1.变量值…

小程序的授权机制

小程序的授权机制 it修真院小课堂 目录 1.背景介绍 2.知识剖析 3.常见问题 4.解决方案 5.编码实战 6.扩展思考 7.参考文献 8.更多讨论 1.背景介绍 说到这,我们需要先了解一下微信小程序是啥?简单说,它就是一个可以实现之前只能是原生态APP可以…

敏捷AI|NLP技术在宜信业务中的实践「背景篇」

导读:文章围绕基于机器学习的NLP技术在宜信内部各业务领域的应用实践展开,分享这一过程中的相关经验,包括智能机器人在业务支持、客户服务中的探索,基于文本语义分析的用户画像构建,以及NLP算法服务平台化实施思路等。…

[翻译] Google的javascript风格指南中值得注意的13点

写在文章前 这篇文章翻译自13 Noteworthy Points from Google’s JavaScript Style Guide . 如果觉得风格指南的完整版太长的话,这篇文章提取出来了比较值得注意的几点,比如说tab vs space这种堪比咸甜豆腐脑的战争。(还记得美剧硅谷中&#…

BZOJ3573 HNOI2014米特运输

显然确定一个点的权值后整棵树权值确定。只要算出根节点的权值就能知道两种改法是否等价。 乘的话显然会炸&#xff0c;取log即可。map似乎会出一些问题&#xff0c;sort即可。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib&g…