layer-list 看来是图层的累加 我是这么理解的,字面上是多个层,也就是呢你可以把多个leyaer放在一起然后一其显现出来 如qqw.xml
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item>
- <shape>
- <solid android:color="#FF00ff00" />
- <gradient
- android:useLevel="true"
- android:type="sweep"
- android:startColor="#ff000000"
- android:endColor="#ffff0000" />
- </shape>
- </item>
- <item>
- <rotate
- android:pivotX="50%" android:pivotY="50%"
- android:fromDegrees="0" android:toDegrees="80"
- android:drawable="@drawable/icon" />
- </item>
- </layer-list>
然后就可以在别处引用了
- <ImageButton android:id="@+id/btnFindMe"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:background="@drawable/qqw"
例如在 android:style/Widget.ProgressBar.Large 或者其他的progressbar风格
- <style name="progressBarStyleSmall" parent="android:style/Widget.ProgressBar.Large">
- <item name="android:indeterminateDrawable">@drawable/progress</item>
- </style>
- <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- <item android:drawable="@android:drawable/progress_circular_background" />-->
- <!-- <item>
- <shape android:shape="ring"
- android:innerRadiusRatio="3.4"
- android:thicknessRatio="6.0">
- <gradient
- android:useLevel="true"
- android:type="sweep"
- android:startColor="#ff000000"
- android:endColor="#ffffffff" />
- </shape>
- </item> -->
- <item>
- <rotate
- android:pivotX="50%" android:pivotY="50%"
- android:fromDegrees="0" android:toDegrees="370"
- android:drawable="@drawable/load2" />
- </item>
- </layer-list>
而include的使用就是为了降低 重复书写同一个布局而使用的引用,当然他还有另一优点就是和merge的混合使用 当你想添加一个布局而这个布局本身已经有了一个layout你想直接在这个layout下添控件,而你另一个xml中必须有一个layout ,如果你直接引用include这个xml那么就会多了一个layout ,所以这时候你应该把控件填写在merge中,这样就可以直接加入到原来的layout中了。
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="64dip"
- android:gravity="center_vertical"
- android:ignoreGravity="@+id/icon">
- <include layout="@layout/track_list_item_common" />;
- </RelativeLayout>
track_list_item_common.xml
- <merge xmlns:android="http://schemas.android.com/apk/res/android">
- <ImageView android:id="@+id/icon"
- android:layout_alignParentLeft="true"
- android:layout_centerVertical="true"
- android:layout_marginLeft="4dip"
- android:layout_width="60px"
- android:layout_height="60px"/>
- ...
- </merge>
从上面的代码可以看到 merge是不需要merge的