0

私はアンドロイドアプリケーションに取り組んでいます。私はアンドロイドアプリ開発の初心者です。いくつかの Android デバイスでアプリをテストできます。ただし、レイアウトはデバイスごとに異なって見えます。参照用にスクリーンショットを作成しました。これらのスクリーンショットは、アプリの設計に最適なレイアウトを示しています

高解像度デバイスのレイアウトには設計上の問題がいくつかあります

コード:

<?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:background="@drawable/bgcopy"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/linearLayout1"
    style="@style/TitleBar" >

    <Button
        android:id="@+id/back"
        android:layout_width="60dp"
        android:layout_height="30dip"
        android:layout_marginLeft="7dip"
        android:background="@drawable/bround1"
        android:text="@string/back"
        android:textColor="@color/White"
        android:textStyle="bold" />

    <TextView
        style="@style/TitleBarText"
        android:gravity="center"
        android:text="@string/testApp"
        android:textSize="16dp" />

    <Button
        android:id="@+id/home"
        android:layout_width="60dip"
        android:layout_height="30dip"
        android:layout_marginRight="7dip"
        android:background="@drawable/bround1"
        android:text="@string/home"
        android:textColor="@color/White"
        android:textStyle="bold" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="1.5dp"
    android:background="@color/Black" >
</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignBottom="@+id/relativeLayout1"
    android:orientation="horizontal"
    android:background="@drawable/blackroundshape" 
    android:gravity="center">

    <TextView
        android:id="@+id/restrictions"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:background="@drawable/blackroundshape"
        android:gravity="center"
        android:layout_gravity="center"
        android:selectAllOnFocus="true"
        android:text="Details"
        android:textColor="@color/White"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/locations"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:background="@drawable/blackroundshape"
        android:gravity="center"
        android:layout_gravity="center"
        android:text="@string/locations"
        android:textColor="@color/White"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/news"
        android:layout_width="128dip"
        android:layout_height="54dip"
        android:layout_marginLeft="0.5dip"
        android:layout_weight="1"
        android:background="@drawable/blackroundshape"
        android:gravity="center"
        android:layout_gravity="center"
        android:selectAllOnFocus="true"
        android:text="@string/news"
        android:textColor="@color/White"
        android:textSize="15dip"
        android:textStyle="bold" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="60dp"        
    android:layout_below="@+id/linearLayout1"
    android:orientation="horizontal"
    android:background="@drawable/backbutton"
    android:gravity="center"  
    >

    <TextView
        android:id="@+id/reserve"
        android:layout_width="115dip"
        android:layout_height="58dip"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:background="@drawable/backbutton"
        android:gravity="center"
        android:layout_gravity="center"
        android:text="@string/reserve"
        android:textColor="@color/White"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/favorite"
        android:layout_width="115dip"
        android:layout_height="58dip"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:background="@drawable/backbutton"
        android:gravity="center"
        android:layout_gravity="center"
        android:text="@string/favorite"
        android:textColor="@color/White"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/share"
        android:layout_width="128dip"
        android:layout_height="58dip"
        android:layout_weight="1"
        android:background="@drawable/backbutton"
        android:gravity="center"
        android:layout_gravity="center"
        android:selectAllOnFocus="true"
        android:text="@string/share"
        android:textColor="@color/White"
        android:textSize="15dip"
        android:textStyle="bold" />
</LinearLayout>

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="504dp"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true" >

    <RelativeLayout
        android:id="@+id/relativeLayout2"
        android:layout_width="fill_parent"
        android:layout_height="170dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_margin="7dp"
        android:background="@drawable/round_transperent2" >

        <ImageView
            android:id="@+id/image"
            android:layout_width="110dp"
            android:layout_height="110dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="11dp"
            android:src="@drawable/default_ptr_rotate" />

        <TextView
            android:id="@+id/couponText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/image"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="20dp"
            android:layout_toRightOf="@+id/image"
            android:text="TextView"
            android:textColor="@color/Black"
            android:typeface="serif" />

        <TextView
            android:id="@+id/save_textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/image"
            android:layout_below="@+id/image"
            android:layout_marginLeft="1dp"
            android:paddingLeft="1dp"
            android:text="@string/save"
            android:textColor="@color/mightyBlue"
            android:textSize="19sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/upto_textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/save_textView2"
            android:layout_alignBottom="@+id/save_textView2"
            android:layout_alignRight="@+id/image"
            android:layout_marginLeft="3dp"
            android:layout_toRightOf="@+id/save_textView2"
            android:text="@string/upto"
            android:textColor="@color/Gray" />

        <TextView
            android:id="@+id/amountDetails"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/save_textView2"
            android:layout_below="@+id/save_textView2"
            android:layout_marginBottom="4dp"
            android:paddingLeft="1dp"
            android:text="@string/amount"
            android:textColor="@color/mightyBlue"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/amountDetails"
            android:layout_alignLeft="@+id/couponText"
            android:text="Expires on:"
            android:textColor="@color/Black"
            android:typeface="serif"
            android:visibility="invisible" />

        <TextView
            android:id="@+id/expitydate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/amountDetails"
            android:layout_toRightOf="@+id/textView5"
            android:maxLength="10"                
            android:textColor="@color/Black" 
            />
    </RelativeLayout>

    <TextView
        android:id="@+id/RemainingDays_textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView7"
        android:layout_below="@+id/relativeLayout2"
        android:text="Remaning Days"
        android:textColor="@color/mightyBlue" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/RemainingDays_textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:gravity="center"
        android:text="@string/redeem"
        android:textColor="@color/Black"
        android:textSize="16dp"/>

    <TextView
        android:id="@+id/textView7"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView6"
        android:layout_below="@+id/textView6"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="3dp"
        android:gravity="center"
        android:text="@string/redeemnow"
        android:textColor="@color/Red"
        android:textSize="18dp" />

    <TextView
        android:id="@+id/YES"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_alignLeft="@+id/textView7"
        android:layout_below="@+id/textView7"
        android:layout_marginLeft="35dp"
        android:layout_marginTop="20dp"
        android:background="@drawable/yellow_ball"
        android:gravity="center"
        android:text="YES"
        android:textColor="@color/Black"
        android:textSize="16dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/No"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_alignBaseline="@+id/YES"
        android:layout_alignBottom="@+id/YES"
        android:layout_alignRight="@+id/textView7"
        android:layout_marginRight="44dp"
        android:background="@drawable/yellow_ball"
        android:gravity="center"
        android:text="NO"
        android:textColor="@color/Black"
        android:textSize="16dp"
        android:textStyle="bold" />
</RelativeLayout>

2 番目のスクリーン ショットは、問題を示しています。アプリの機能面は完了しましたが、この問題によりアプリを送信できません。どんな助けでも感謝します。

ありがとうございました!!!

4

4 に答える 4

1

含まれている LinearLayout には、 TextView の子を中央に配置するためのgravity = centerが必要ですand android:layout_alignParentBottom="true"(親コンテナとしてRelativeLayoutがあることがわかります):

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

<LinearLayout
    android:id="@+id/navBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:gravity="center"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/restrictions"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:selectAllOnFocus="true"
        android:text="Details"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/locations"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Locations"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/news"
        android:layout_width="128dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginLeft="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:selectAllOnFocus="true"
        android:text="news"
        android:textSize="15dip"
        android:textStyle="bold" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/navBar"
    android:gravity="center"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/restrictions"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:selectAllOnFocus="true"
        android:text="Details"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/locations"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Locations"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/news"
        android:layout_width="128dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginLeft="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:selectAllOnFocus="true"
        android:text="news"
        android:textSize="15dip"
        android:textStyle="bold" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/restrictions"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:selectAllOnFocus="true"
        android:text="Details"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/locations"
        android:layout_width="115dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginRight="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Locations"
        android:textSize="15dip"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/news"
        android:layout_width="128dip"
        android:layout_height="54dip"
        android:layout_gravity="center"
        android:layout_marginLeft="0.5dip"
        android:layout_weight="1"
        android:gravity="center"
        android:selectAllOnFocus="true"
        android:text="news"
        android:textSize="15dip"
        android:textStyle="bold" />
</LinearLayout>

</RelativeLayout>

ここに画像の説明を入力

于 2013-10-10T13:56:40.010 に答える
0

他のレイアウトをラップする適切なレイアウトを備えた正しい階層があることを再確認してください。「Reserve、Favorite、Share」を含む上から 2 番目のバーについては、テキスト ビューでウェイト 1 のリニア レイアウトを使用し、TV の幅 = 0 dp であることを確認してください。次に、「詳細、場所、ニュース」で下部バーを作成し、それを下部に揃えます。次に、属性 layout_below="topbar" および layout_above="bottombar" を持つレイアウトとして中央の白い部分を作成します

アイデアを提供するためのsudoコードを次に示します

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

    <!-- Top Bar -->
    <LinearLayout
        andorid:name="@+id/nav_bar"
        android:layout_alignParentTop="true"
        android:layout_width=... />

    <!--  Second to Top Bar -->
    <LinearLayout
        android:name="@+id/reserve_bar"
        android:layout_width="fill_parent"
        android:layout_height="54dp"
        android:layout_below="@id/nav_bar"
        android:orientation="vertical" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            ... />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            ... />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            ... />
    </LinearLayout>

    <!-- Very Bottom Bar -->
    <LinearLayout
        android:name="@+id/details_bar"
        android:layout_width="fill_parent"
        android:layout_height="54dp"
        android:layout_alignParentBottom="true"
        android:orientation="vertical" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            ... />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            ... />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" 
            ... />
    </LinearLayout>

    <!-- Body of the layout below 2nd bar and above bottom bar-->
    <RelativeLayout
        android:name="@+id/body_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/reserve_bar"
        android:layout_above="@id/detail_bar" >

        <RelativeLayout>
            android:stuff="..."
        </RelativeLayout>

    </RelativeLayout>

</RelativeLayout>

問題は、あるべきではないものに align_bottom 属性があることだと思います。これらは alignParentBottom をオーバーライドします

于 2013-10-13T20:52:54.900 に答える
0

画面サイズごとに異なるレイアウトを追加しましたか?

参照: http://developer.android.com/guide/practices/screens_support.html

さまざまな画面サイズの場合、以下は、さまざまな画面サイズにさまざまなレイアウト デザインを提供し、小、中、高、超高密度の画面にさまざまなビットマップ ドローアブルを提供するアプリケーションのリソース ディレクトリのリストです。

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

res/drawable-mdpi/my_icon.png        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density

マニフェスト内の次のコードは、すべての dpi をサポートしています。

<supports-screens android:smallScreens="true" 
          android:normalScreens="true" 
          android:largeScreens="true"
          android:xlargeScreens="true"
          android:anyDensity="true" />
于 2013-10-10T13:32:06.087 に答える