attr.xml 自定义属性format
1. reference:参考某一资源ID。
(1)属性定义:
<declare-styleable name = "名称">
<attr name = "background" format = "reference" />
</declare-styleable>
(2)属性使用:
<ImageView
android:layout_width = "42dip"
android:layout_height = "42dip"
android:background = "@drawable/图片ID"
/>
2. color:颜色值。
(1)属性定义:
<declare-styleable name = "名称">
<attr name = "textColor" format = "color" />
</declare-styleable>
(2)属性使用:
<TextView
android:layout_width = "42dip"
android:layout_height = "42dip"
android:textColor = "#00FF00"
/>
3. boolean:布尔值。
(1)属性定义:
<declare-styleable name = "名称">
<attr name = "focusable" format = "boolean" />
</declare-styleable>
(2)属性使用:
<Button
android:layout_width = "42dip"
android:layout_height = "42dip"
android:focusable = "true"
/>
4. dimension:尺寸值。
(1)属性定义:
<declare-styleable name = "名称">
<attr name = "layout_width" format = "dimension" />
</declare-styleable>
(2)属性使用:
<Button
android:layout_width = "42dip"
android:layout_height = "42dip"
/>
5. float:浮点值。
(1)属性定义:
<declare-styleable name = "AlphaAnimation">
<attr name = "fromAlpha" format = "float" />
<attr name = "toAlpha" format = "float" />
</declare-styleable>
(2)属性使用:
<alpha
android:fromAlpha = "1.0"
android:toAlpha = "0.7"
/>
6. integer:整型值。
(1)属性定义:
<declare-styleable name = "AnimatedRotateDrawable">
<attr name = "visible" />
<attr name = "frameDuration" format="integer" />
<attr name = "framesCount" format="integer" />
<attr name = "pivotX" />
<attr name = "pivotY" />
<attr name = "drawable" />
</declare-styleable>
(2)属性使用:
<animated-rotate
xmlns:android = "http://schemas.android.com/apk/res/android"
android:drawable = "@drawable/图片ID"
android:pivotX = "50%"
android:pivotY = "50%"
android:framesCount = "12"
android:frameDuration = "100"
/>
7. string:字符串。
(1)属性定义:
<declare-styleable name = "MapView">
<attr name = "apiKey" format = "string" />
</declare-styleable>
(2)属性使用:
<com.google.android.maps.MapView
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:apiKey = "0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"
/>
8. fraction:百分数。
(1)属性定义:
<declare-styleable name="RotateDrawable">
<attr name = "visible" />
<attr name = "fromDegrees" format = "float" />
<attr name = "toDegrees" format = "float" />
<attr name = "pivotX" format = "fraction" />
<attr name = "pivotY" format = "fraction" />
<attr name = "drawable" />
</declare-styleable>
(2)属性使用:
<rotate
xmlns:android = "http://schemas.android.com/apk/res/android"
android:interpolator = "@anim/动画ID"
android:fromDegrees = "0"
android:toDegrees = "360"
android:pivotX = "200%"
android:pivotY = "300%"
android:duration = "5000"
android:repeatMode = "restart"
android:repeatCount = "infinite"
/>
9. enum:枚举值。
(1)属性定义:
<declare-styleable name="名称">
<attr name="orientation">
<enum name="horizontal" value="0" />
<enum name="vertical" value="1" />
</attr>
</declare-styleable>
(2)属性使用:
<LinearLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "vertical"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
>
</LinearLayout>
10. flag:位或运算。
(1)属性定义:
<declare-styleable name="名称">
<attr name="windowSoftInputMode">
<flag name = "stateUnspecified" value = "0" />
<flag name = "stateUnchanged" value = "1" />
<flag name = "stateHidden" value = "2" />
<flag name = "stateAlwaysHidden" value = "3" />
<flag name = "stateVisible" value = "4" />
<flag name = "stateAlwaysVisible" value = "5" />
<flag name = "adjustUnspecified" value = "0x00" />
<flag name = "adjustResize" value = "0x10" />
<flag name = "adjustPan" value = "0x20" />
<flag name = "adjustNothing" value = "0x30" />
</attr>
</declare-styleable>
(2)属性使用:
<activity
android:name = ".StyleAndThemeActivity"
android:label = "@string/app_name"
android:windowSoftInputMode = "stateUnspecified | stateUnchanged | stateHidden">
<intent-filter>
<action android:name = "android.intent.action.MAIN" />
<category android:name = "android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
注意:
属性定义时可以指定多种类型值。
(1)属性定义:
<declare-styleable name = "名称">
<attr name = "background" format = "reference|color" />
</declare-styleable>
(2)属性使用:
<ImageView
android:layout_width = "42dip"
android:layout_height = "42dip"
android:background = "@drawable/图片ID|#00FF00"
/>
Android自定义View三步曲:
onMeasure:测量大小
onLayout:布局
onDraw:绘制
相关推荐
在Android开发中,自定义属性(attr.xml, TypedArray)是一种强大的工具,它允许开发者扩展Android组件的功能,创建个性化的UI元素,同时提高代码的可重用性和可配置性。以下将详细介绍如何在Android中使用自定义...
通过自定义Attr,开发者可以创建自己的XML属性,使自定义控件更具有灵活性和扩展性。以下将详细介绍Android自定义Attr属性的使用过程及其背后的原理。 首先,自定义Attr涉及到的主要步骤包括:定义属性、在资源文件...
在这个类中,我们需要初始化并获取attrs.xml中定义的属性,比如使用`TypedArray`来获取自定义属性值: ```java public class TopBar extends RelativeLayout { // 初始化各组件和属性 private Button leftBtn, ...
总结来说,自定义View使用自定义属性的过程主要包括:在`attrs.xml`中声明属性,通过`TypedArray`获取属性值,并在自定义View的逻辑中应用这些属性。这个过程增强了Android组件的可定制性,使得开发者能够创建出更...
### Android如何使用XML自定义属性 在Android开发中,我们经常需要为自定义视图或者控件设置一些特定的属性来满足不同的需求。为了更好地控制这些属性并使其更易于管理和扩展,Android提供了一种机制——XML自定义...
Android自定义View中attrs.xml的实例详解 我们在自定义View的时候通常需要先完成attrs.xml文件 在values中定义一个attrs.xml 然后添加相关属性 这一篇先详细介绍一下attrs.xml的属性。 <?xml version=1.0 ...
本资源提供的就是一个关于Android自定义View及其属性的简单示例,帮助开发者更好地理解和实践这一技术。 一、自定义View的基本步骤 1. 创建新类:首先,我们需要创建一个新的Java类,继承自Android的View或其子类...
本文将深入探讨如何在Android中自定义View并使用属性(attrs.xml)来扩展其功能。 首先,自定义View的基本步骤包括创建一个新的View类,继承自Android的View或ViewGroup类,然后重写其构造函数、onDraw()方法等。但...
1. **定义属性**:在res/values目录下创建一个attr.xml资源文件(如果还没有的话),在这里声明自定义属性。例如,我们可以定义一个名为`custom_color`的属性,其类型为color: ```xml <attr name="custom_...
5. **自定义属性**:同样需要在 attrs.xml 中定义自定义属性,以便在 XML 布局中配置样式。 在使用自定义属性时,我们需要在 res/values/attrs.xml 文件中定义属性,例如: ```xml <attr name="switchColor" ...
本文将深入探讨自定义View的基础原理以及如何自定义其属性。 首先,自定义View的创建通常涉及以下几个步骤: 1. **创建新类**:创建一个新的Java类,继承自Android的View或已有的View子类(如TextView、ImageView...
本示例"Android 自定义view,自定义属性demo"将带你深入理解如何在Android中创建并使用自定义属性,以增强自定义View的功能。 首先,自定义属性是在XML布局文件中定义的,通常位于res/values目录下的attrs.xml文件...
本文将深入探讨自定义View和Layout的属性,以及如何通过源码理解和使用这些特性。 首先,自定义View的基本步骤包括创建一个新的Java类,继承自View或已有的View子类(如TextView、ImageView等),然后重写必要的...
在XML布局文件中,我们可以像使用原生View一样使用自定义View,并设置其属性: ```xml <com.example.myapp.MyCustomView android:layout_width="wrap_content" android:layout_height="wrap_content" app:custom...
首先,自定义控件属性主要涉及`attr.xml`文件的创建和使用。在项目的`res/values`目录下,我们需要创建一个或多个`attr.xml`文件,用于定义自定义的属性。例如: ```xml <attr name="customColor" format=...
在Android开发中,自定义属性可以定义在自定义View类的`attr.xml`文件中,然后在`style.xml`或布局文件中引用。这允许开发者创建具有独特外观和行为的自定义控件。例如,你可以创建一个带有特殊边框、颜色或动画效果...
例如,如果一个布局常常由ImageView、ImageButton和TextView组成,我们可以创建一个新的自定义View,将这三个组件集成在一起,这样在代码中只需要引用一个控件,既提高了效率,也使XML布局文件更加简洁。 自定义...
3. **获取属性值**:在自定义View的构造函数或者onFinishInflate方法中,通过Context的obtainStyledAttributes方法获取XML布局中定义的属性值: ```java TypedArray a = context.obtainStyledAttributes attrs, R....
本篇文章将深入探讨如何在Android中进行自定义View,并以"自定义属性demo修改版"为例,讲解如何添加和使用自定义属性。 首先,自定义属性是在Android资源文件中定义的,通常在res/values/attrs.xml中。在这个示例中...