避免Android布局中的数字?

时间:2016-01-01 21:02:02

标签: android android-layout

是否可以设计Android版面(LinearLayoutRelativeLayout)而无需指定任何dppx或任何其他单元?也许使用百分比? layout_weight是一种选择。但是利润率和填充量仍然如此?我们可以完全避免布局中的幻数吗?

2 个答案:

答案 0 :(得分:5)

Percent Support LibraryPercentFrameLayoutPercentRelativeLayout,您可以在其中指定任何布局尺寸(即尺寸,位置和边距),而不是绝对值:

<android.support.percent.PercentRelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent">

     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>

</android.support.percent.PercentRelativeLayout>

答案 1 :(得分:3)

您始终可以定义并使用dimension变量来删除布局中的幻数,即:

<ImageView 
  layout_width="@dimen/large_photo_size"
  layout_height="@dimen/large_photo_size"
/>

@dimen/large_photo_size资源文件中定义dimens.xml,即:

<resources>
    <dimen name="large_photo_size">25dp</dimen>
</resources>

另一种选择是将宽度和高度设置提取为样式,即:

<style name="Thumbnail">
    <item name="android:layout_width">25dp</item>
    <item name="android:layout_height">25dp</item>
</style>

并使用它,即<ImageView style="@style/PopupMenu" ... />

使用themes,您可以全局应用某些样式。