第一种

/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>

android自定义view属性的更多相关文章

  1. android 自定义View属性

    在android开发过程中,用到系统的View时候可以通过XML来定义一些View的属性.比如ImageView:   android:src  和android:scaleType为ImageVie ...

  2. Android读取自定义View属性

    Android读取自定义View属性 attrs.xml : <?xml version="1.0" encoding="utf-8"?> < ...

  3. (转)[原] Android 自定义View 密码框 例子

    遵从准则 暴露您view中所有影响可见外观的属性或者行为. 通过XML添加和设置样式 通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 ...

  4. Android 自定义View (五)——实践

    前言: 前面已经介绍了<Android 自定义 view(四)-- onMeasure 方法理解>,那么这次我们就来小实践下吧 任务: 公司现有两个任务需要我完成 (1)监测液化天然气液压 ...

  5. Android 自定义 view(三)—— onDraw 方法理解

    前言: 上一篇已经介绍了用自己定义的属性怎么简单定义一个view<Android 自定义view(二) -- attr 使用>,那么接下来我们继续深究自定义view,下一步将要去简单理解自 ...

  6. Android 自定义view(二) —— attr 使用

    前言: attr 在前一篇文章<Android 自定义view -- attr理解>已经简单的进行了介绍和创建,那么这篇文章就来一步步说说attr的简单使用吧 自定义view简单实现步骤 ...

  7. [原] Android 自定义View步骤

    例子如下:Android 自定义View 密码框 例子 1 良好的自定义View 易用,标准,开放. 一个设计良好的自定义view和其他设计良好的类很像.封装了某个具有易用性接口的功能组合,这些功能能 ...

  8. [原] Android 自定义View 密码框 例子

    遵从准则 暴露您view中所有影响可见外观的属性或者行为. 通过XML添加和设置样式 通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 ...

  9. Android -- 自定义View小Demo,动态画圆(一)

    1,转载:(http://blog.csdn.NET/lmj623565791/article/details/24500107),现在如下图的效果: 由上面的效果图可以看到其实是一个在一个圆上换不同 ...

随机推荐

  1. python笔记 - day7-1 之面向对象编程

    python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...

  2. Linux版OpenVPN安装、配置教程(转)

    本文将以目前最新的openvpn-2.3.4.tar.gz(更新于2014-5-2,下载地址)为例来介绍如何在Linux系统中安装.配置及使用OpenVPN. 在这里,我们选用了一台预装CentOS ...

  3. perl常见符号

    =>  键值对,左键右值 -> 引用,相当于java中的 [对象.方法名]中的点号 :: 表示调用类的一个方法 % 散列的标志,定义一个键值对类型的 @ 数组的标志 $ 标量的标志 =~ ...

  4. Android PickerView滚动选择器的使用方法

    手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器,前几天用手机刷了MIUI,发现自带的那个时间选择器效果挺好看的,于是就自己仿写了一个,权当练手.先来看效果: 效果还行吧?实现思路就是自定 ...

  5. jni学习

    Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机(VM) 内部运行的 ...

  6. 开机取消显示 系统准备工具(Sysprep)

    问题: 解决办法: 1.关闭系统准备工具 3.14 2.桌面  ---  开始 ---  运行  ----  输入  XCOPY %windir%\System32\svchost.exe %wind ...

  7. SocketServer model_use

    #!/usr/bin/env python #-*- coding:utf- -*- import SocketServer class MySocker(SocketServer.BaseReque ...

  8. 自动备份sqlexpress 数据库脚本

    Create PROCEDURE [dbo].[usp_BackupDatabase] @databaseName sysname,@backupPath nvarchar(255), @backup ...

  9. 与PostgreSQL相关的工具

    Pentaho Data Integration(kettle):一个优秀的抽取.转换.加载(Extract Transform and Load,ETL)工具 Pentaho  Report Ser ...

  10. FB面经prepare: task schedule II

    followup是tasks是无序的. 一开始是有序的,比如说1, 1, 2, 1,一定要先执行第一个task1,然后等task1恢复,再执行第2个task1,再执行task2..... follow ...