我正在为Android应用程序设计一些布局并使用多个按钮。所有按钮都具有相似的属性。无论如何它在某些不同的文件中保留类似的属性并参考布局。
例如:
下面的代码有多个属性。所有按钮都具有类似的值,不包括按钮ID和图标。有没有更好的方法可以避免一次又一次地重新定义?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/search_linear_layout"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_margin="16dp"
>
<ImageButton
android:layout_width="84dp"
android:layout_height="78dp"
app:srcCompat="@mipmap/ic_schedule_black_48dp"
android:background="@drawable/button_shape"
android:layout_gravity="center"
android:layout_weight="1"
android:tint="@color/colorAccent"
android:id="@+id/imageButton1" />
<ImageButton
android:layout_width="84dp"
android:layout_height="78dp"
app:srcCompat="@mipmap/ic_brightness_4_black_48dp"
android:background="@drawable/button_shape"
android:layout_gravity="center"
android:layout_weight="1"
android:tint="@color/colorAccent"
android:id="@+id/imageButton2" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:tint="@color/colorAccent"
android:layout_below="@id/search_linear_layout"
android:layout_margin="16dp"
>
<ImageButton
android:layout_width="84dp"
android:layout_height="78dp"
app:srcCompat="@mipmap/ic_brightness_4_black_48dp"
android:background="@drawable/button_shape"
android:layout_gravity="center"
android:tint="@color/colorAccent"
android:layout_weight="1"
android:id="@+id/imageButton3" />
<ImageButton
android:layout_width="84dp"
android:layout_height="78dp"
app:srcCompat="@mipmap/ic_local_hotel_black_48dp"
android:background="@drawable/button_shape"
android:layout_gravity="center"
android:layout_weight="1"
android:tint="@color/colorAccent"
android:id="@+id/imageButton4" />
</LinearLayout>
答案 0 :(得分:1)
是的,请为单个按钮创建单独的.xml文件。并包含您要使用的文件。
例如, 的 my_button.xml 强>
<ImageButton
android:layout_width="84dp"
android:layout_height="78dp"
app:srcCompat="@mipmap/ic_brightness_4_black_48dp"
android:background="@drawable/button_shape"
android:layout_gravity="center"
android:tint="@color/colorAccent"
android:layout_weight="1"
android:id="@+id/imageButton3" />
现在在您所需的.xml中调用此布局
例如, 的 activity_main 强>
<include
android:id="@+id/btn1"
layout="@layout/my_button">
</include>
享受!
答案 1 :(得分:1)
只需为按钮定义不同的样式,然后再应用。 这个article应该会有所帮助。
values / styles.xml :
<style name="MyCustomStyle" parent="Base.Widget.AppCompat.ImageButton">
<item name="android:src">@drawable/whatever</item>
</style>
您的ImageButton内部布局文件:
<ImageButton
android:layout_width="84dp"
android:layout_height="78dp"
style="@style/MyCustomStyle"
android:background="@drawable/button_shape"
android:layout_gravity="center"
android:layout_weight="1"
android:tint="@color/colorAccent"
android:id="@+id/imageButton4" />