图形布局实现

时间:2015-02-14 18:14:39

标签: android android-layout

我是Android编程的新手。 在android上实现这种图形布局的最佳方法是什么?

http://8pic.ir/images/d9que1v93nxxp7za7hxv.jpg

这是我的方式:但是

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="horizontal" >

   <LinearLayout
       android:layout_width="0dp"
       android:layout_height="match_parent"
       android:layout_marginBottom="20dp"
       android:layout_marginLeft="20dp"
       android:layout_marginRight="20dp"
       android:layout_marginTop="20dp"
       android:layout_weight="2"
       android:orientation="vertical" >

       <TextView
           android:id="@+id/textView1"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:text="my text my text my text my text my text my text my  text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text my text "
           android:textAppearance="?android:attr/textAppearanceMedium"
           android:textSize="20sp" />

   </LinearLayout>

   <LinearLayout
       android:layout_width="0dp"
       android:layout_height="match_parent"
       android:layout_marginLeft="20dp"
       android:layout_marginRight="20dp"
       android:layout_weight="1"
       android:orientation="vertical" >

       <Button
           android:id="@+id/button1"
           android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_marginBottom="10dp"
           android:layout_marginTop="20dp"
           android:layout_weight="1"
           android:text="Button" />

       <Button
           android:id="@+id/button3"
           android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_marginBottom="10dp"
           android:layout_marginTop="10dp"
           android:layout_weight="1"
           android:text="Button" />

       <Button
           android:id="@+id/button4"
           android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_marginBottom="20dp"
           android:layout_marginTop="10dp"
           android:layout_weight="1"
           android:text="Button" />

   </LinearLayout>

但: 1)这是正确的吗? 2)我使用&#39; sp&#39;文本大小的单位,但我的文字大小在不同的屏幕尺寸上不能很好地缩放?

2 个答案:

答案 0 :(得分:1)

1)这取决于你。如果您认为布局看起来应该如此,那么是的。这是对的。

但是,如果您要求我的主观意见,我会仅将该布局用于横向模式,并为纵向模式实施更“纵向友好”的布局。

示例:

Example

要实现此目的,请在layout-land文件夹中添加横向布局,并将纵向布局放在layout文件夹中。

2)sp是定义字体大小时的正确用法。见reference

如果您想为不同的屏幕尺寸使用不同的fontSize,请考虑根据屏幕添加不同的dimen资源。例如,在values/dimen.xml

中添加此内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">18sp</dimen>
</resources>

您可以在这些不同的文件夹中添加此文件,请参阅以下结构

res/values/dimens.xml

res/values-small/dimens.xml

res/values-large/dimens.xml

res/values-xlarge/dimens.xml

根据您对每种屏幕尺寸的要求更改<dimen name="text_size">18sp</dimen>

最后,将fontSize设置为TextView,如下所示

   <TextView
       android:id="@+id/textView1"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:text="my text ... "
       android:textAppearance="?android:attr/textAppearanceMedium"
       android:textSize="@dimen/text_size" />

请参阅this link以供参考。

答案 1 :(得分:0)

xml布局似乎没问题......但是它的编程实践使用sp作为字体大小单位。但是,它取决于您用来显示文本实际大小的设备。确保相同的大小这样做​​: 转到设置..显示..并在两个设备上设置相同的字体大小..