0

私は私にとって非常に奇妙な問題を抱えています。私が使用しているグラフィックは、理解できない理由で中央に配置されることがありますが、特定のディスプレイでのみ使用されます。上の図は悪い例で、下の図は私が欲しいものです。Androidのバージョンに依存していないようです。良い点と悪い点の両方がAndroid1.6で複製され、悪い点は2.1で複製されました。サイズにのみ依存しているようです...

悪いバージョン

良いレベルのレイアウト

関連するXMLコード:

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
  android:layout_height="fill_parent" android:layout_width="fill_parent">
    <com.google.ads.AdView android:id="@+id/adView" 
        ads:loadAdOnCreate="true" ads:adSize="BANNER" 
        ads:adUnitId="@string/admob_unit_id" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" ></com.google.ads.AdView>
    <pearsonartphoto.AJEG.number_pad android:id="@+id/numberpad" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_above="@id/adView" 
        android:layout_centerHorizontal="true"></pearsonartphoto.AJEG.number_pad>
    <pearsonartphoto.AJEG.Level_Score_bar android:id="@+id/Score_Bar" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"></pearsonartphoto.AJEG.Level_Score_bar>
    <ImageView android:id="@+id/logo_image" 
        android:layout_below="@id/Score_Bar" 
        android:layout_above="@id/numberpad" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/level_logo" 
        android:layout_alignParentLeft="true" 
        android:layout_centerInParent="false"
        android:gravity="left"></ImageView>
    <TextView android:id="@+id/number_select" 
        android:layout_above="@id/numberpad"
        android:layout_below="@id/Score_Bar"
        android:text="0" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        style="@style/numberSelect" 
        android:layout_centerHorizontal="true"
        android:gravity="center"></TextView>
    <pearsonartphoto.AJEG.number_viewer android:id="@+id/numberviewer" 
        android:layout_alignParentRight="true" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/Score_Bar"></pearsonartphoto.AJEG.number_viewer>
</RelativeLayout>

ご覧のとおり、画像の重力を左に明確に設定し、親の左に揃えるように指示しましたが、何らかの理由で中央に揃えたいと考えています。

4

3 に答える 3

2
Please try this code,, 

<?xml version="1.0" encoding="utf-8"?>

  <RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
       xmlns:ads = "http://schemas.android.com/apk/lib/com.google.ads"
       android:layout_width = "fill_parent"
       android:layout_height = "fill_parent">

   <RelativeLayout android:id = "@+id/1stRLayout" 
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:layout_alignParentBottom = "true">

    <com.google.ads.AdView android:id = "@+id/adView" 
        ads:loadAdOnCreate = "true" 
        ads:adSize = "BANNER" 
        ads:adUnitId = "@string/admob_unit_id" 
        android:layout_width = "wrap_content" 
        android:layout_height = "wrap_content">
    </com.google.ads.AdView>
  </RelativeLayout>


  <RelativeLayout android:id = "@+id/2ndRLayout" 
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:layout_above = "@id/1stRLayout"
        android:gravity = "center">

    <pearsonartphoto.AJEG.number_pad android:id = "@+id/numberpad" 
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content">
    </pearsonartphoto.AJEG.number_pad>  
  </RelativeLayout>

  <RelativeLayout android:id = "@+id/3rdRLayout"
        android:layout_width = "fill_parent"
        android:layout_height = "70dp"
        android:layout_above = "@id/2ndRLayout">

    <ImageView android:id = "@+id/logo_image" 
        android:layout_width = "wrap_content" 
        android:layout_height = "wrap_content" 
        android:src = "@drawable/level_logo" 
        android:layout_marginLeft = "8dp"
        android:layout_alignParentLeft = "true"
        android:layout_marginTop = "6dp">
    </ImageView>

    <TextView android:id = "@+id/number_select" 
        android:layout_width = "wrap_content" 
        android:layout_height = "wrap_content" 
        android:text = "0"  
        style = "@style/numberSelect" 
        android:layout_centerInParent = "true">
    </TextView>

    <pearsonartphoto.AJEG.number_viewer android:id = "@+id/numberviewer" 
        android:layout_width = "wrap_content" 
        android:layout_height = "wrap_content" 
        android:layout_marginRight = "8dp"
        android:layout_alignParentRight = "true"
        android:layout_marginTop = "6dp">
    </pearsonartphoto.AJEG.number_viewer>
  </RelativeLayout>

  <RelativeLayout android:id = "@+id/4thRLayout"
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:layout_alignParentTop = "true">

    <pearsonartphoto.AJEG.Level_Score_bar android:id = "@+id/Score_Bar" 
        android:layout_height = "wrap_content" 
        android:layout_width = "fill_parent">
    </pearsonartphoto.AJEG.Level_Score_bar>
  </RelativeLayout>

</RelativeLayout>
于 2011-06-25T10:19:40.520 に答える
0

ImageView のレイアウトlayout_above="@+id/numberpadを定義すると、以下のように定義したように、問題が発生する可能性がありnumberviewerます。上記のコードはそれを解決するはずです。

@+idは、レイアウトを定義する場合にのみ使用してください。それ以外の場合は@id.

また、 内でレイアウト位置を定義するときRelativeLayoutは、レイアウト ファイルの下部にある他の要素に対して相対的に配置される要素を配置することを検討する必要があります。

layout_alignParentToplayout_alignParentLeftlayout_alignParentRightまたはlayout_alignParentBottom内に絶対項目をレイアウトするときにも使用できますRelativeLayout。あなたの場合は間違いなくそうすべきです。

于 2011-06-04T14:25:42.400 に答える
0

別の理由で入れなければならなかったちょっとした策略によって、なんとか問題を解決することができました。ただし、1 つの石で 2 つの問題を解決するのに役立ちます。

基本的に、私の ImageView は次のようになりました。

<ImageView android:id="@+id/logo_image" 
    android:layout_below="@id/Score_Bar" 
    android:layout_above="@id/numberpad" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/level_logo" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@id/number_select" 
    android:layout_centerInParent="false"
    android:gravity="left"></ImageView>

キービットは lineandroid:layout_toLeftOf="@id/number_select"で、画像が数値の textView と重ならないようにしました。完全に左寄りというわけではありませんが、少なくとも重なっていないので、今のところはこれで十分だと言えます。

于 2011-06-05T05:45:02.800 に答える