• Android自定义 view属性


    第一种 

    /MainActivity/res/values/attrs.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <declare-styleable name="MyCircle">
            <attr name="radius" format="integer"/>
            <attr name="mycolor" format="reference|color"/>
        </declare-styleable>
    </resources>

    /MainActivity/src/com/ch/myviews/MyCircle.java

    package com.ch.myviews;
    
    import com.ch.myviewattr.R;
    
    import android.content.Context;
    import android.content.res.TypedArray;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.View;
    
    public class MyCircle extends View {
        private Paint paint;
        private int radius;
       
        public MyCircle(Context context, AttributeSet attrs) {
            super(context, attrs);
            // TODO Auto-generated constructor stub
            //获得自定义的属性,即获得自定义的半径
            TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.MyCircle);
            radius = ta.getInt(R.styleable.MyCircle_radius, 0);
            
          
        }
        //绘制的方法
        @Override
        protected void onDraw(Canvas canvas) {
            // TODO Auto-generated method stub
            paint = new Paint();
            paint.setColor(Color.RED);
            
    //        canvas.drawColor(Color.BLACK);
            canvas.drawCircle(getMeasuredWidth()/2, getMeasuredHeight()/2, radius, paint);
            super.onDraw(canvas);
        }
        
        
    
    }

    /MainActivity/res/layout/activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:myattr="http://schemas.android.com/apk/res/com.ch.myviewattr"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <com.ch.myviews.MyCircle
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            myattr:radius="200"
            />
    
    </RelativeLayout>

    第二种

    /MainActivity/res/values/attrs.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <declare-styleable name="MyCircle">
            <attr name="radius" format="integer"/>
            <attr name="mycolor" format="reference|color"/>
        </declare-styleable>
    </resources>

    /MainActivity/src/com/ch/myviews/MyCircle.java

    package com.ch.myviews;
    
    import com.ch.myviewattr.R;
    
    import android.content.Context;
    import android.content.res.TypedArray;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.View;
    
    public class MyCircle extends View {
        private Paint paint;
        private int radius;
        private final static String NAMESPACE = "aaa1407a";
        public MyCircle(Context context, AttributeSet attrs) {
            super(context, attrs);
            // TODO Auto-generated constructor stub
            //获得自定义的属性,即获得自定义的半径
        
            radius = attrs.getAttributeIntValue(NAMESPACE, "radius", 0);
        }
        //绘制的方法
        @Override
        protected void onDraw(Canvas canvas) {
            // TODO Auto-generated method stub
            paint = new Paint();
            paint.setColor(Color.RED);
            
    //        canvas.drawColor(Color.BLACK);
            canvas.drawCircle(getMeasuredWidth()/2, getMeasuredHeight()/2, radius, paint);
            super.onDraw(canvas);
        }
        
        
    
    }

    /MainActivity/res/layout/activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:myattr="aaa1407a"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <com.ch.myviews.MyCircle
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            myattr:radius="200"
            />
    
    </RelativeLayout>
  • 相关阅读:
    2 初学函数,求幂指数练手程序
    1 批量生成虚拟姓名
    Python 中 time 模块与 datetime 模块在使用中的不同之处
    feature selection&feature abstraction降维
    拿到样本简单的清洗操作
    使用sklearn做单机特征工程
    tensorflow安装
    PCA数学角度解析
    使用Python进行描述性统计【解决了实习初期的燃眉之急】
    类、对象、属性、方法、类的成员
  • 原文地址:https://www.cnblogs.com/1426837364qqcom/p/5371257.html
Copyright © 2020-2023  润新知