添加自定义属性

自定义的类

public class CustomTurntableInsideView extends View {


Paint mPaint;
RectF mRectF;
String mStr;

public CustomTurntableInsideView(Context context) {
    super(context);
    init();
}

public CustomTurntableInsideView(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);

    //自定义属性,如何添加自定义属性如下(考点)
    //第一步:在values文件夹下创建attrs.xml
    //第二步:详见attrs.xml文件内部
    //第三步:在所在的布局文件的根layout中添加xmlns:app="http://schemas.android.com/apk/res-auto"
    //第四步:在布局文件的控件中添加app:"你在attrs中设置的attr name"="你的值"
    //第五步:调用下面这句话,最后的为R.styleable.你在attrs中设置的declare-styleable name
  //第六步:调用下面这句话,根据你在attrs中设置的format,选择getXXX方法,
        //入参为 R.styleable. 加上 你在attrs中设置的declare-styleable name 加上 _ 加上 你在attrs中设置的attr name
        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomTurntableView);
  
    mStr = typedArray.getString(R.styleable.CustomTurntableView_text);
    init();




   private void init() {
        //以下注释请看CustomBingView里面
        mPaint = new Paint();
        mPaint.setColor(Color.RED);
        mPaint.setStrokeWidth(10);
        mPaint.setTextSize(60);
        mPaint.setStyle(Paint.Style.FILL);

    mRectF = new RectF();
    mRectF.top = 100;
    mRectF.bottom = 400;
    mRectF.right = 550;
    mRectF.left = 350;



  @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        //设置画笔颜色为黑色,
        mPaint.setColor(Color.BLACK);
    //画出指针,用一个扇形,然后盖住后面补分来简单表示
    canvas.drawArc(mRectF, 60, 60, true, mPaint);

    mPaint.setColor(Color.RED);
    //画一个红色的圆形,就是中间的大按钮
    canvas.drawCircle(450, 450, 150, mPaint);

    mPaint.setColor(Color.BLACK);
    //添加按钮上的文字
    canvas.drawText(mStr, 400, 450, mPaint);

attr.xml

?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- name为想要调用这个属性的类名即可 -->

    <declare-styleable name="CustomTurntableView">
        <!-- name为属性的名字,可以随意起,只要符合规则看得懂 -->
        <!-- format为属性内容的类型 -->
        <attr name="text" format="string"></attr>
    </declare-styleable>
</resources>

Xml的布局

<com.bawei.myapplication.turntable.CustomTurntableInsideView
        android:id="@+id/custom_inside"
        android:layout_width="wrap_content"
        android:layout_height="500dp"
        app:text="开始"
        android:background="#3300ff00" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值