android:自定义视图属性
来源:互联网 发布:work域名的价值 编辑:程序博客网 时间:2024/06/06 14:13
android中 当默认的控件无法满足是,可通过新建一个类使其继承View,来达到自定义控件的效果
代码如下
MainActivity:
package com.example.kanzaki.learnmyview;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}
自定义控件MyView
package com.example.kanzaki.learnmyview;import android.content.Context;import android.content.res.TypedArray;import android.util.AttributeSet;import android.view.View;/** * Created by Kanzaki on 2016/3/27. *///自定义控件,使其继承自Viewpublic class MyView extends View { //两个构造方法 public MyView(Context context) { super(context); } //带有属性设置的构造方法 public MyView(Context context, AttributeSet attrs) { super(context, attrs); //调用context.obtainStyledAttributes方法加载自定义的属性 TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyView); //通过typedArray对象获取color int color = typedArray.getColor(R.styleable.MyView_my_color, 0xffff0000); //为背景设置颜色 setBackgroundColor(color); //每次使用TypedArray后需要调用recycle()方法,当recycle被调用后, // 说明该对象现在可以被重复利用,不需要每次使用都重新分配内存了 //官方解释:回收TypedArray,以便后面重用。在调用这个函数后,你就不能再使用这个TypedArray。 typedArray.recycle(); }}
自定义属性myColor.xml
<?xml version="1.0" encoding="utf-8"?><resources> //declare-styleable是给自定义控件添加自定义属性用的 <declare-styleable name="MyView"> //format属性用于限制my_color的格式,这里设置为颜色 <attr name="my_color" format="color"> </attr> </declare-styleable></resources>
主布局activity-main.xml
<pre name="code" class="java"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:kanzaki="http://schemas.android.com/apk/res/com.example.kanzaki.learnmyview" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.kanzaki.learnmyview.MainActivity"> //通过完整包名来访问自定义的控件 //可以通过在根标签中添加xmlns:kanzaki="http://schemas.android.com/apk/res/com.example.kanzaki.learnmyview" //对自定义属性修改 <com.example.kanzaki.learnmyview.MyView android:layout_width="100dp" android:layout_height="100dp" kanzaki:my_color="@color/colorAccent" /></LinearLayout>
自定义属性的format有很多种:
reference
string
color
boolean
dimension
integer
float
flag
fraction
enum
具体使用可参照:http://blog.csdn.net/pgalxx/article/details/6766677
0 0
- android:自定义视图属性
- Android视图自定义属性
- android---自定义视图属性
- android自定义视图属性学习
- Android自定义视图和属性
- android 自定义视图控件属性
- Android自定义视图与自定义属性
- Android开发_自定义视图和属性
- Android如何自定义视图属性总结
- unity3d 自定义属性视图
- 自定义视图属性
- AndroidStudio 视图自定义属性
- android自定义视图属性(atts.xml,TypedArray)学习
- (转)android自定义视图属性(atts.xml,TypedArray)学习
- android自定义视图属性(atts.xml,TypedArray)学习
- android自定义视图属性(atts.xml,TypedArray)学习
- Android自定义视图一:扩展现有的视图,添加新的XML属性
- 自定义控件,自定义视图状态,复杂属性
- 编写一个简单的配置文件
- 区间相关问题解法
- Ubuntu 输入法的切换
- JVM
- jquery -ajax
- android:自定义视图属性
- codeforces 118D Caesar's Legions (好题)
- poj--2549--Sumsets(二分)
- XMLHttpRequest
- Android之百度定位
- 63. Unique Paths II
- 没有括号的sizeof,sizeof为关键字
- C#版的组合查询+模板方法
- VB.NET 版三层登录的实现