android按钮在较小的屏幕设备中缩小

时间:2014-07-18 13:40:19

标签: android android-layout

我有以下布局。底部有一个id = btn的按钮,里面有一个文本,这个按钮在较大的屏幕手机上看起来很好,但在较小的屏幕上,它看起来像一条线,没有可见的文字。如何解决?

感谢。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dip" >

    <!-- Name Label -->

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="60dp"
            android:layout_height="100dp"
            android:src="@drawable/img_na" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/imageView1"
            android:layout_marginBottom="5dip"
            android:layout_marginTop="10dip"
            android:text="Name:"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/hide_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginTop="10dip"
            android:clickable="true"
            android:onClick="hideBtnClicked"
            android:text="hidden   (change)"
            android:textColor="@color/editRed"
            android:textSize="12dip"
            android:visibility="gone" />
    </RelativeLayout>

    <!-- Name Value -->

    <EditText
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <!-- Address Label -->

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dip"
            android:layout_marginTop="15dip"
            android:text="Address:"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/hide_addr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginTop="10dip"
            android:clickable="true"
            android:onClick="hideBtnClicked"
            android:text="hidden   (change)"
            android:textColor="@color/editRed"
            android:textSize="12dip"
            android:visibility="gone" />
    </RelativeLayout>

    <!-- Address Value -->

    <EditText
        android:id="@+id/address"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <!-- Phone Number Label -->

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dip"
            android:layout_marginTop="15dip"
            android:text="Phone:"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/hide_ph"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginTop="10dip"
            android:clickable="true"
            android:onClick="hideBtnClicked"
            android:text="hidden   (change)"
            android:textColor="@color/editRed"
            android:textSize="12dip"
            android:visibility="gone" />
    </RelativeLayout>

    <!-- Phone Value -->

    <EditText
        android:id="@+id/phone"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <!-- Location Value -->

    <EditText
        android:id="@+id/location"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dip"
        android:layout_marginTop="15dip" />

    <TextView
        android:id="@+id/distance"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dip"
        android:layout_marginTop="15dip" />

    <Button
        android:id="@+id/btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:minHeight="40dp"
        android:text="to retain heigth" />

</LinearLayout>
编辑:感谢您建议使用scrollvew,但我希望按钮始终可见,所以我不想让它可以分解。其次,内容也不是很长,以使其可滚动,我只缺少几个dps。所以我想避免滚动视图。我只是希望整个内容根据屏幕尺寸缩小一点高度。

3 个答案:

答案 0 :(得分:1)

您可以使用ScrollView允许内容滚动到每个屏幕尺寸。

希望它有所帮助。

答案 1 :(得分:1)

       yes use scroll view 


  <ScrollView android:id="@+id/ScrollView01"
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillViewport="true" 
   android:layout_width="fill_parent"
   android:background="#ffffff"
   android:layout_height="wrap_content">
   <RelativeLayout 
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   >

    <Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="Button" />

    <Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button1"
    android:layout_centerHorizontal="true"
    android:text="Button" />
    <Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button2"
    android:layout_alignParentLeft="true"
    android:layout_centerHorizontal="true"
    android:text="Button" />
   <Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button3"
    android:layout_alignParentRight="true"
    android:layout_centerHorizontal="true"
    android:text="Button" />
   <Button
    android:id="@+id/button5"
    android:layout_width="wrap_content"
    android:layout_height="70dp"
    android:layout_below="@+id/button4"
    android:layout_alignParentRight="true"
    android:layout_centerHorizontal="true"
    android:text="Button" />
    <Button
    android:id="@+id/button6"
    android:layout_width="wrap_content"
    android:layout_height="150dp"
    android:layout_below="@+id/button5"
    android:layout_alignParentLeft="true"
    android:layout_centerHorizontal="true"
    android:text="Button" />
    <Button
    android:id="@+id/button7"
    android:layout_width="wrap_content"
    android:layout_height="150dp"
    android:layout_below="@+id/button6"

    android:layout_centerHorizontal="true"
    android:text="Button" />
    </RelativeLayout>
    </ScrollView>

答案 2 :(得分:0)

我想你可能想检查GridLayout这种情况。但GridLayout需要API Level 14或更高版本!任何API等级低于14的设备都不能与您的应用兼容。

此外,您可以使用v7 gridlayout库,其API级别低于14.我认为您可以通过Google轻松找到一个示例!