Android自定义view自定义属性怎么使用,请牛人指导

如题所述

第1个回答  2016-07-13

在attrs.xml文件中声明自定义View的类和相应属性及其数据类型

<declare-styleable name="ToolBar">
    <attr name="icon" format="reference" />
    <attr name="labelColor" format="color"/>
    <attr name="isVisible" format="boolean" />
    <attr name="width" format="dimension" />
    <attr name="fromAlpha" format="float" />
    <attr name="buttonNum" format="integer" />
    <attr name="label" format="string" />
    <attr name="pivotX" format="fraction" />
    <attr name="language">
        <enum name="english" value="1" />
        <enum name="chinese" value="2" />
    </attr>
    <attr name="windowSoftInputMode">
        <flag name="stateUnspecified" value="1" />
        <flag name="adjustNothing" value="0x30" />
    </attr>
    <attr name="itemBackground" format="reference|color" />
</declare-styleable>

在自定义View中对自定义属性进行解析

TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.ToolBar);
buttonNum = ta.getInt(R.styleable.ToolBar_buttonNum, 5);
itemBg = ta.getResourceId(R.styleable.ToolBar_itemBackground, -1);
ta.recycle();

在布局文件中使用自定义属性,声明命名空间

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:toolbar="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <com.example.demo.ToolBar
    toolbar:icon="@drawble/icon"
    toolbar:labelColor="#29C1B2"
    toolbar:isVisible="true"
    toolbar:width="180dp"
    toolbar:fromAlpha="0.5"
    toolbar:buttonNum="3"
    toolbar:label="ToolBar"
    toolbar:pivotX="30%"
    toolbar:language="english"
    toolbar:windowSoftInputMode="stateUnspecified|adjustNothing"
    toolbar:itemBackground="@drawable/bg|#00FF00"/>
</LinearLayout>

android自定义view
具体操作:1、定义标题栏布局文件定义标题栏的布局文件custom_title_view.xml,将返回按钮和标题文本进行组合。这一步用于确定标题栏的样子,代码如下所示:?xmlversion="1.0"encoding="utf-8"?RelativeLayoutxmlns:android="http:\/\/schemas.android.com\/apk\/res\/android"android:layout_width="match_pare...

android 自定义view 怎么规定view的样式
android 自定义view的样式的实现:1.在values文件夹下,打开attrs.xml,其实这个文件名称可以是任意的,写在这里更规范一点,表示里面放的全是view的属性。2.因为我们下面的实例会用到2个长度,一个颜色值的属性,所以我们这里先创建3个属性。<declare-styleable name="rainbowbar"> <attr name="rain...

Android —— 自定义View中,你应该知道的知识点
在Activity中调用setContentView()方法开始加载顶级View,即DecorView,这个过程通过PhoneWindow中的installDecor()方法实现。在DecorView初始化后,开始执行View的工作流程。当Activity进入Resume状态时,ViewRootImpl实例开始工作,执行measure、layout和draw方法,完成View的绘制。View的测量大小发生在measure()方法...

Android自定义控件之像ListView一样使用RecyclerView - 自定义控件属性...
进一步,我们查看了ListView的源码,特别是其构造方法。在处理entries属性时,通过TypedArray对象获取自定义属性,使用getTextArray方法获取字符串数组。若未定义,则返回null。之后,创建ArrayAdapter对象将数组作为数据源设置给Adapter,并绑定至R.layout.simple_list_item_1布局中的TextView,最后调用setAdapter方...

写自定义view该有的的流程和思路
自定义属性可通过在布局文件中直接加入属性或使用attrs.xml文件声明。属性命名需遵循命名空间规则。 本文旨在概述自定义View的制作流程与步骤,提供基本框架与指导思路。建议深入学习已有教程与实战案例。 抢首赞 已赞过 已踩过< 你对这个回答的评价是? 评论 分享 复制链接https:\/\/zhidao.baidu.com\/question\/227930792...

android 自定义控件 属性怎么用
自定义属性设置 public class lei extends RelativeLayout { private TextView tv1 public lei(Context context) { super(context);} public lei(Context context, AttributeSet attrs) { super(context, attrs);LayoutInflater.from(context).inflate(R.layout.item,this);tv1 = findViewById(R.id.tv1...

【HenCoder Android 开发进阶】自定义 View 1-7:属性动画(进阶篇)_百度...
随着Android系统版本的更新,从API 21开始,引入了ofArgb()方法,这使得在minSdk大于等于21的环境下,可以直接使用更简洁的语法进行颜色动画的实现。自定义TypeEvaluator如果对预设的ArgbEvaluator不满足,或希望实现更加个性化的动画效果,您可以根据需求自行编写TypeEvaluator。这种方法为属性动画提供了更大的创造...

android 中怎么样自定义attributes
写程序中可能需要用到一些自定义的view控件,这样就需要增加一些自定义的属性。比如说我要做个股票报价的TextView,涨是红色,跌是绿色 1。先在values目录下创建styles.xml <resources> <item name="positiveColor" >#FFFF0000<\/item> <item name="negetiveColor" >#FF00FF00<\/item> <\/resources...

android如何实现进度条?
在Android中实现进度条,可通过自定义View实现,运用自定义View三部曲onMeasure(), onDraw(), onTouch()。步骤如下:首先,进行分析与思路规划:1.1 分析:将进度条分为内圆与外圆,设置所需颜色。文字采用半分比显示方式,设定文字颜色与大小。1.2 思路:自定义属性后,将属性应用于View中,获取...

Android 自定义View:为什么你设置的wrap_content不起作用?
从上面可以看出,当子View的布局参数使用 match_parent 或 wrap_content 时:所以: wrap_content 起到了和 match_parent 相同的作用:等于父容器当前剩余空间大小 当自定义View的布局参数设置成wrap_content时时,指定一个默认大小(宽 \/ 高)。这样,当你的自定义View的宽 \/ 高设置成wrap_content属...

相似回答