缩放按钮到屏幕大小

时间:2014-10-07 10:16:43

标签: android android-layout

我有RelativeLayout 3 LinearLayouts我有按钮位置。每个布局中有2个按钮。 在不同尺寸的设备上,按钮尺寸保持不变: Nexus 7 - http://i.imgur.com/rfCy2Me.png,

Nexus 5 - !

enter image description here

但我希望按钮可以针对不同的屏幕尺寸调整大小。 这是布局文件的来源:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/superviserlinearLayout1"
    android:layout_centerHorizontal="true"
    android:paddingTop="5dp">
    <Button
        android:text="აგენტები"
        android:id="@+id/superviserBtnAgents"
        android:drawableTop="@drawable/admin"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_width="145dp"
        android:layout_height="145dp" />
    <Button
        android:text="ობიექტები"
        android:id="@+id/superviserBtnObjects"
        android:drawableTop="@drawable/store"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_width="145dp"
        android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/superviserlinearLayout1"
    android:id="@+id/superviserlinearLayout2"
    android:layout_centerHorizontal="true">
    <Button
        android:text="დებიტორები"
        android:drawableTop="@drawable/money"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_width="145dp"
        android:layout_height="145dp"
        android:id="@+id/superviserBtnDebitors" />
    <Button
        android:text="საწყობი"
        android:drawableTop="@drawable/production"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_width="145dp"
        android:layout_height="145dp"
        android:id="@+id/superviserBtnDepot" />
</LinearLayout>
<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/superviserlinearLayout2"
    android:id="@+id/superviserlinearLayout3"
    android:layout_centerHorizontal="true">
    <Button
        android:text="ინკასაცია"
        android:drawableTop="@drawable/atm"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_width="145dp"
        android:layout_height="145dp"
        android:id="@+id/superviserBtnIncasation" />
    <Button
        android:text="შეტყობინებები"
        android:drawableTop="@drawable/notes"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_width="match_parent"
        android:layout_height="145dp"
        android:id="@+id/superviserBtnNotes" />
</LinearLayout>

如何实现这一目标?

修改:我需要背景图片进行拉伸,即使它们看起来像素化。

2 个答案:

答案 0 :(得分:1)

要支持不同的屏幕尺寸,您必须在相应的可绘制文件夹中放置适当大小的图像,根据谷歌这些是建议的尺寸:

xlarge screens are at least 960dp x 720dp (xxhdpi folder)
large screens are at least 640dp x 480dp  (xhdpi folder)
normal screens are at least 470dp x 320dp (hdpi folder or mdpi (depends))
small screens are at least 426dp x 320dp  (ldpi)
  

注意:这些最小屏幕尺寸在Android 3.0之前没有明确定义,因此您可能会遇到一些在正常和大型之间错误分类的设备。这些也基于屏幕的物理分辨率,因此可能因设备而异 - 例如,系统条的1024x720平板电脑实际上由于系统条使用它而使应用程序可用的空间更小。 -Google

答案 1 :(得分:1)

  1. 删除按钮的硬编码宽度。

  2. 将LinearLayout宽度更改为match_parent而不是wrap_content,并使用按钮的权重。

  3. 类似的东西:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:minHeight="25px"
        android:minWidth="25px"
        android:orientation="vertical" >
    
        <LinearLayout
            android:id="@+id/superviserlinearLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:minHeight="25px"
            android:minWidth="25px"
            android:orientation="horizontal"
            android:paddingTop="5dp" 
            android:weightSum="2">
    
            <Button
                android:id="@+id/superviserBtnAgents"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="145dp"
                android:drawableTop="@drawable/ic_launcher"
                android:text="აგენტები"
                android:textSize="14sp"
                android:textStyle="bold" />
    
            <Button
                android:id="@+id/superviserBtnObjects"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:drawableTop="@drawable/ic_launcher"
                android:text="ობიექტები"
                android:textSize="14sp"
                android:textStyle="bold" />
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/superviserlinearLayout2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/superviserlinearLayout1"
            android:layout_centerHorizontal="true"
            android:minHeight="25px"
            android:minWidth="25px"
            android:orientation="horizontal" 
            android:weightSum="2">
    
            <Button
                android:id="@+id/superviserBtnDebitors"
                android:layout_width="0dp"
                android:layout_height="145dp"
                android:drawableTop="@drawable/ic_launcher"
                android:text="დებიტორები"
                android:textSize="14sp"
                android:textStyle="bold" 
                android:layout_weight="1"/>
    
            <Button
                android:id="@+id/superviserBtnDepot"
                android:layout_width="0dp"
                android:layout_height="145dp"
                android:drawableTop="@drawable/ic_launcher"
                android:text="საწყობი"
                android:textSize="14sp"
                android:textStyle="bold" 
                android:layout_weight="1"/>
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/superviserlinearLayout3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/superviserlinearLayout2"
            android:layout_centerHorizontal="true"
            android:minHeight="25px"
            android:minWidth="25px"
            android:weightSum="2"
            android:orientation="horizontal" >
    
            <Button
                android:id="@+id/superviserBtnIncasation"
                android:layout_width="0dp"
                android:layout_height="145dp"
                android:drawableTop="@drawable/ic_launcher"
                android:text="ინკასაცია"
                android:textSize="14sp"
                android:textStyle="bold" 
                android:layout_weight="1"/>
    
            <Button
                android:id="@+id/superviserBtnNotes"
                android:layout_width="0dp"
                android:layout_height="145dp"
                android:drawableTop="@drawable/ic_launcher"
                android:text="შეტყობინებები"
                android:textSize="14sp"
                android:textStyle="bold" 
                android:layout_weight="1"/>
        </LinearLayout>
    
    </RelativeLayout>
    

    希望它有所帮助。