0

我正在开发一个应用程序,它在 7 英寸设备(Nexus 和 Dell streak 7)上看起来很棒。我创建了不同密度的图像,所以看起来不错。

但是,当我尝试在我的手机(三星 Galaxy 2)或平板电脑 10 上运行该应用程序时,它看起来一点也不好看。

这是它在nexus 7上的样子:

在此处输入图像描述

以下是它在 Galaxy 2 手机上的外观: 在此处输入图像描述

以下是它在 10 英寸平板电脑上的外观:

在此处输入图像描述

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="@drawable/background1" >
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        <TextView
                android:id="@+id/textView1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:gravity="center"
                android:text="@string/tour_menu"
                android:textSize="@dimen/font_large" />   
    </LinearLayout> 
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        <TextView
                android:id="@+id/tour_info"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textSize="@dimen/font_medium" />   
    </LinearLayout> 
    <TableLayout  
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:shrinkColumns="*"
            android:paddingRight="5dp"
            android:orientation="vertical" >
        <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/passenger_list"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:gravity="center_horizontal|center_vertical"
                        android:background="@drawable/pax_list"
                        android:contentDescription="@string/pass_list"  />    
                <TextView
                        android:id="@+id/passenger_list_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/pass_list"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/arrivals"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal|center_vertical"
                        android:background="@drawable/arrivals"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:padding="44dp"
                        android:contentDescription="@string/arrivals" />
                <TextView
                        android:id="@+id/arrivals_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/arrivals"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/departures"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/departures"
                        android:contentDescription="@string/departures" />
                <TextView
                        android:id="@+id/departures_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/departures"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/master_rooming"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/master_rooming_list"
                        android:contentDescription="@string/rooming" />
                <TextView
                        android:id="@+id/master_rooming_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/rooming"
                        android:textSize="@dimen/font_medium" />        
            </LinearLayout>
        </TableRow>
        <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="50dp" >
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/itinerary"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/itinerary"
                        android:contentDescription="@string/itinerary" />   
                <TextView
                        android:id="@+id/itinerary_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/itinerary"
                        android:textSize="@dimen/font_medium" />    
            </LinearLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/voucher"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/vouchers"
                        android:contentDescription="@string/voucher" />  
                <TextView
                        android:id="@+id/voucher_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/voucher"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>         
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                <ImageButton
                        android:id="@+id/qa"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/qa_list"
                        android:contentDescription="@string/qa" />  

                <TextView
                        android:id="@+id/qa_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/qa"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/optionals"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/optionals"
                        android:contentDescription="@string/itinerary" />   
                <TextView
                        android:id="@+id/optionals_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/optionals"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>
        </TableRow> 
        <TableRow
                android:id="@+id/tableRow3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="50dp" >
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/flights"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/flights"
                        android:contentDescription="@string/itinerary" />   
                <TextView
                        android:id="@+id/flights_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/flights"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>             
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:id="@+id/close_tour"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/close_tour"
                        android:contentDescription="@string/close" />  

                <TextView 
                        android:id="@+id/close_tour_text"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/close"
                        android:textSize="@dimen/font_medium" />                    
            </LinearLayout>
                <!--
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/icon"
                        android:contentDescription="@string/voucher" />  
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/voucher"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>         
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                <ImageButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/icon"
                        android:contentDescription="@string/qa" />  

                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/qa"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <ImageButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="10dp"
                        android:layout_marginLeft="10dp"
                        android:background="@drawable/icon"
                        android:contentDescription="@string/close" />  

                <TextView 
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@string/close"
                        android:textSize="@dimen/font_medium" />
            </LinearLayout>  -->    
        </TableRow> 

    </TableLayout>
    <!-- Time Stamp at the bottom of the screen -->
    <TextView
            android:id="@+id/timeStamp"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:gravity="bottom|center"
            android:textSize="@dimen/font_medium" />
</LinearLayout>
4

2 回答 2

3

好的,看到你的布局文件后,我认为你应该做以下事情之一:

  1. 使用 GridView
  2. 使用 ImageView 而不是 ImageButtons

使用 GridView 可以为您节省大量工作。看看这个网站,你可能会找到你需要的东西:http ://www.androidviews.net/

如果您选择使用 ImageViews,则应设置以下首选项:

adjustViewBounds="true"
scaleType="centerInside"

这样,您的图像将保持其比例。

希望能帮助到你!

于 2013-03-26T14:15:04.633 回答
1

您可能还会考虑将布局切换到 GridLayout。Cyril Mottier 讨论了它如何帮助扁平化视图层次结构。它还可能为您提供您可能正在寻找的简单、开箱即用的解决方案。

https://plus.google.com/118417777153109946393/posts/FugJcLCfkWm

于 2013-03-26T14:40:53.813 回答