CustomView样式

时间:2012-11-21 13:08:16

标签: android android-layout android-view android-custom-view

我在设计customview时遇到问题。 我想在不同的布局中使用不同的样式。但我的风格不适用。

CustomView布局:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"     
        <ImageView 
                   android:id="@+id/img"                       
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"/>

        <TextView 
                  android:id="@+id/txt"     
                  android:layout_width="wrap_content"
              android:layout_height="wrap_content"       
              android:layout_gravity="bottom|center_horizontal"               
</merge>

在另一个布局中定义:

<com.buka.customviews.Bukaview
         android:id="@+id/bukaId"
         android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             style="@style/BukaStyle1">

styles.xml

<style name="BukaStyle1">
        <item name="android:textSize">10sp</item>
</style>

<style name="BukaStyle2">
        <item name="android:textSize">20sp</item>
</style> 

由于

1 个答案:

答案 0 :(得分:0)

您应该创建自定义属性:
<attr name="BukaStyleTextSize" format="dimensions" />

然后在自定义视图布局的TextView标记中输入:
android:textSize="?attr:BukaStyleTextSize"

最后,在styles.xml中的样式中放置:
<item name="BukaStyleTextSize>10sp</item>