这几天研究了一下Android开发。单位要求的开发多个分辨率版本的app,所以研究了一下Android自适应分辨率的布局。
基本上都是组件的长宽用等比例变量来表示。贴出以下代码
<LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="57" android:gravity="center" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="128" android:gravity="center" android:orientation="vertical" android:weightSum="1280" > <TextView android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="185" android:text="" /> <Button android:id="@+id/Buttonadd" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="128" android:background="@drawable/n_01" /> <TextView android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="69" android:text="" /> <Button android:id="@+id/Buttoncheck" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="128" android:background="@drawable/n_01" /> <TextView android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="69" android:text="" /> <Button android:id="@+id/Buttoncase" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="128" android:background="@drawable/n_01" /> <TextView android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="69" android:text="" /> <Button android:id="@+id/Buttoncompany" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="128" android:background="@drawable/n_01" /> <TextView android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="185" android:text="" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="94" android:gravity="center" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="128" android:gravity="center" android:orientation="vertical" android:weightSum="1280" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="94" android:gravity="center" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="128" android:gravity="center" android:orientation="vertical" android:weightSum="1280" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="94" android:gravity="center" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="71" android:gravity="center" > </LinearLayout><LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="128" android:gravity="center" android:orientation="vertical" android:weightSum="1280" >
将垂直的线性布局等比分为1280 份,
<TextView android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="185" android:text="" />
用android:layout_weight 属性设置 TextView占父空间的185份,而不是将TextView的高度写死。这样就可以自适应TextView的高度。在1280*800的分辨率下 TextView的高度是185dp 而在其它的分辨率下TextView的高度就会等比缩放。