2017-08-01 12 views
0
私はうまく

レイアウト位置が異なるデバイス

on a Nexus 5

をラインアップするために、私は私のアプリ内のすべてのイメージを持っネクサス5に設定されているデバイスとAndroidのエミュレータを使用して私のアプリを設計し

ために適切にスケーリングしていません

しかし、他のデバイスに設定されたエミュレータ(Nexus 6,7,9)でテストしようとしたとき、xとyの位置はすべてバックグラウンドイメージに対して適切に拡大されませんでした。ここで

on a Nexus 6

私のXMLコードです:

Australia = new ImageView(this); 
     Australia.SetImageResource(Resource.Drawable.australia); 
     Australia.Visibility = ViewStates.Visible; 
     AustraliaLayout = FindViewById<RelativeLayout>(Resource.Id.AustraliaLayout); 
     AustraliaLayout.AddView(Australia); 

     Fishes1 = new ImageView(this); 
     Fishes1.SetImageResource(Resource.Drawable.fishes1_sprite); 
     Fishes1.Visibility = ViewStates.Visible; 
     Fishes1Layout = FindViewById<RelativeLayout>(Resource.Id.Fishes1Layout); 
     Fishes1Layout.AddView(Fishes1); 
     Fishes1Layout.SetX(DP_to_Pixel(133.33)); 
     Fishes1Layout.SetY(DP_to_Pixel(323.5)); 

     Fishes2 = new ImageView(this); 
     Fishes2.SetImageResource(Resource.Drawable.fishes2_sprite); 
     Fishes2.Visibility = ViewStates.Visible; 
     Fishes2Layout = FindViewById<RelativeLayout>(Resource.Id.Fishes2Layout); 
     Fishes2Layout.AddView(Fishes2); 
     Fishes2Layout.SetX(DP_to_Pixel(50)); 
     Fishes2Layout.SetY(DP_to_Pixel(350)); 

     Fishes3 = new ImageView(this); 
     Fishes3.SetImageResource(Resource.Drawable.fishes3_sprite); 
     Fishes3.Visibility = ViewStates.Visible; 
     Fishes3Layout = FindViewById<RelativeLayout>(Resource.Id.Fishes3Layout); 
     Fishes3Layout.AddView(Fishes3); 
     Fishes3Layout.SetX(DP_to_Pixel(303.33)); 
     Fishes3Layout.SetY(DP_to_Pixel(170)); 

     Fishes4 = new ImageView(this); 
     Fishes4.SetImageResource(Resource.Drawable.fishes4_sprite); 
     Fishes4.Visibility = ViewStates.Visible; 
     Fishes4Layout = FindViewById<RelativeLayout>(Resource.Id.Fishes4Layout); 
     Fishes4Layout.AddView(Fishes4); 
     Fishes4Layout.SetX(DP_to_Pixel(100)); 
     Fishes4Layout.SetY(DP_to_Pixel(116.67)); 

     Fishes5 = new ImageView(this); 
     Fishes5.SetImageResource(Resource.Drawable.fishes4_sprite); 
     Fishes5.Visibility = ViewStates.Visible; 
     Fishes5Layout = FindViewById<RelativeLayout>(Resource.Id.Fishes5Layout); 
     Fishes5Layout.AddView(Fishes5); 
     Fishes5Layout.SetX(DP_to_Pixel(303.33)); 
     Fishes5Layout.SetY(DP_to_Pixel(360)); 

     Fishes6 = new ImageView(this); 
     Fishes6.SetImageResource(Resource.Drawable.fishes1_sprite); 
     Fishes6.Visibility = ViewStates.Visible; 
     Fishes6Layout = FindViewById<RelativeLayout>(Resource.Id.Fishes6Layout); 
     Fishes6Layout.AddView(Fishes6); 
     Fishes6Layout.SetX(DP_to_Pixel(26.67)); 
     Fishes6Layout.SetY(DP_to_Pixel(173.33)); 

     Snake1 = new ImageView(this); 
     Snake1.SetImageResource(Resource.Drawable.snake_sprite); 
     Snake1.Visibility = ViewStates.Visible; 
     SnakeLayout1 = FindViewById<RelativeLayout>(Resource.Id.SnakeLayout1); 
     SnakeLayout2 = FindViewById<RelativeLayout>(Resource.Id.SnakeLayout2); 
     SnakeLayout2.AddView(Snake1); 
     SnakeLayout1.SetX(DP_to_Pixel(120)); 
     SnakeLayout1.SetY(DP_to_Pixel(253.33)); 

     ZLarge = new ImageView(this); 
     ZLarge.SetImageResource(Resource.Drawable.z); 
     ZLarge.Visibility = ViewStates.Visible; 
     ZLargeLayout = FindViewById<RelativeLayout>(Resource.Id.Large_Z_Layout); 
     ZLargeLayout.AddView(ZLarge); 
     ZLargeLayout.SetX(DP_to_Pixel(258.33)); 
     ZLargeLayout.SetY(DP_to_Pixel(290.33)); 
     // move down by 7 

     ZMedium = new ImageView(this); 
     ZMedium.SetImageResource(Resource.Drawable.z); 
     ZMedium.Visibility = ViewStates.Visible; 
     ZMediumLayout = FindViewById<RelativeLayout>(Resource.Id.Medium_Z_Layout); 
     ZMediumLayout.AddView(ZMedium); 
     ZMediumLayout.SetX(DP_to_Pixel(268.33)); 
     ZMediumLayout.SetY(DP_to_Pixel(307)); 

     ZSmall = new ImageView(this); 
     ZSmall.SetImageResource(Resource.Drawable.z); 
     ZSmall.Visibility = ViewStates.Visible; 
     ZSmallLayout = FindViewById<RelativeLayout>(Resource.Id.Small_Z_Layout); 
     ZSmallLayout.AddView(ZSmall); 
     ZSmallLayout.SetX(DP_to_Pixel(264.33)); 
     ZSmallLayout.SetY(DP_to_Pixel(318)); 

     Wombat1 = new ImageView(this); 
     Wombat1.SetImageResource(Resource.Drawable.wombat_sprite); 
     Wombat1.Visibility = ViewStates.Visible; 
     WombatLayout1 = FindViewById<RelativeLayout>(Resource.Id.WombatLayout1); 
     WombatLayout1.AddView(Wombat1); 
     WombatLayout1.SetX(DP_to_Pixel(236.84)); 
     WombatLayout1.SetY(DP_to_Pixel(323.338)); 

     Toad1 = new ImageView(this); 
     Toad1.SetImageResource(Resource.Drawable.toad_sprite); 
     Toad1.Visibility = ViewStates.Visible; 
     ToadLayout1 = FindViewById<RelativeLayout>(Resource.Id.ToadLayout1); 
     ToadLayout2 = FindViewById<RelativeLayout>(Resource.Id.ToadLayout2); 
     ToadLayout2.AddView(Toad1); 
     ToadLayout1.SetX(DP_to_Pixel(261.67)); 
     ToadLayout1.SetY(DP_to_Pixel(210)); 
     ToadLayout2.SetY(DP_to_Pixel(13.33)); 

     Kangaroo1 = new ImageView(this); 
     Kangaroo1.SetImageResource(Resource.Drawable.kangaroo_sprite); 
     Kangaroo1.Visibility = ViewStates.Visible; 
     KangarooLayout1 = FindViewById<RelativeLayout>(Resource.Id.KangarooLayout1); 
     KangarooLayout2 = FindViewById<RelativeLayout>(Resource.Id.KangarooLayout2); 
     KangarooLayout2.AddView(Kangaroo1); 
     KangarooLayout1.SetX(DP_to_Pixel(30)); 
     KangarooLayout1.SetY(DP_to_Pixel(223.33)); 
     KangarooLayout2.SetY(DP_to_Pixel(13.33)); 

     Bird = new ImageView(this); 
     Bird.SetImageResource(Resource.Drawable.bird_sprite); 
     Bird.Visibility = ViewStates.Visible; 
     BirdLayout = FindViewById<RelativeLayout>(Resource.Id.BirdLayout); 
     BirdLayout.AddView(Bird); 
     BirdLayout.SetX(DP_to_Pixel(150)); 
     BirdLayout.SetY(DP_to_Pixel(170)); 

は最後に、私は数を変換する方法を作成しました:私は、プログラムのレイアウトを取り扱う場所

<FrameLayout 
    android:layout_gravity="center_horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/spriteLayout"> 
    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:minWidth="25dp" 
     android:minHeight="25dp" 
     android:layout_gravity="center_vertical" 
     android:id="@+id/AustraliaLayout" /> 
    <RelativeLayout 
     android:minWidth="40px" 
     android:minHeight="40px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Fishes1Layout" /> 
    <RelativeLayout 
     android:minWidth="20px" 
     android:minHeight="20px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Fishes3Layout" /> 
    <RelativeLayout 
     android:minWidth="25px" 
     android:minHeight="25px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Fishes4Layout" /> 
    <RelativeLayout 
     android:minWidth="25px" 
     android:minHeight="25px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Fishes5Layout" /> 
    <RelativeLayout 
     android:minWidth="40px" 
     android:minHeight="40px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Fishes6Layout" /> 
    <RelativeLayout 
     android:minWidth="15px" 
     android:minHeight="15px" 
     android:layout_width="15dp" 
     android:layout_height="15dp" 
     android:id="@+id/Large_Z_Layout" /> 
    <RelativeLayout 
     android:minWidth="12px" 
     android:minHeight="12px" 
     android:layout_width="10dp" 
     android:layout_height="10dp" 
     android:id="@+id/Medium_Z_Layout" /> 
    <RelativeLayout 
     android:minWidth="6px" 
     android:minHeight="6px" 
     android:layout_width="6dp" 
     android:layout_height="6dp" 
     android:id="@+id/Small_Z_Layout" /> 
    <RelativeLayout 
     android:minWidth="35px" 
     android:minHeight="35px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/WombatLayout1" /> 
    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/ToadLayout1"> 
     <RelativeLayout 
      android:minWidth="40px" 
      android:minHeight="40px" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="30dp" 
      android:layout_marginBottom="30dp" 
      android:id="@+id/ToadLayout2" /> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/KangarooLayout1"> 
     <RelativeLayout 
      android:minWidth="40px" 
      android:minHeight="40px" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="30dp" 
      android:layout_marginBottom="30dp" 
      android:id="@+id/KangarooLayout2" /> 
    </RelativeLayout> 
    <RelativeLayout 
     android:minWidth="35px" 
     android:minHeight="35px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/SnakeLayout1"> 
     <RelativeLayout 
      android:minWidth="50px" 
      android:minHeight="50px" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="50dp" 
      android:layout_marginRight="50dp" 
      android:id="@+id/SnakeLayout2" /> 
    </RelativeLayout> 
    <RelativeLayout 
     android:minWidth="40px" 
     android:minHeight="40px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/BirdLayout" /> 
    <RelativeLayout 
     android:minWidth="30px" 
     android:minHeight="30px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Marker1Layout" /> 
    <RelativeLayout 
     android:minWidth="30px" 
     android:minHeight="30px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Marker2Layout" /> 
    <RelativeLayout 
     android:minWidth="30px" 
     android:minHeight="30px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Marker3Layout" /> 
    <RelativeLayout 
     android:minWidth="30px" 
     android:minHeight="30px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Marker4Layout" /> 
    <RelativeLayout 
     android:minWidth="30px" 
     android:minHeight="30px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/CarMarkerLayout" /> 
</FrameLayout> 

、ここでは、私は問題を解決できると思ったが、まだ正しく動作していないと思った:dpへのピクセル:

private int DP_to_Pixel(double dp) 
{ 
    return (int) (dp * Resources.DisplayMetrics.Density); 
} 

私はプログラミングに新しい経験があり、問題を解決するために私が考えることができるすべてを試しました。この問題を解決するための支援があれば、大歓迎です!

+0

使用DPの代わりに、PX –

+0

おかげモハマドが、私は前述のように私のポストの一番下にあるピクセルをdpに変換しました –

+0

あなたはdpをpxに変換しています、pxをdpに変換してください私は私を持っていますその答えを答えに入れてください。 –

答えて

0
  1. まず、UNITを修正してください。 DP instead of PXを使用してください。
  2. 使用ConstraintLayout

ConstraintLayoutは、それが含まれている位置の管理を担当し、ビジュアルコンポーネント(もウィジェットと呼ばれる) の サイズ変更動作です。

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 


    // YOUR REST WORK 

    </android.support.constraint.ConstraintLayout> 

使用にこの1をDPするピクセルを変換するために呼び出す

compile 'com.android.support.constraint:constraint-layout:1.0.2' 
+1

ありがとうIntelliJ Amiya、私はそれを試してみましょう! –

+0

すべての結果??? –

+1

私はそれをDPに変更し、FrameLayoutをConstraintLayoutに変更しましたが、今コンパイルするとエラーが発生します: "バイナリXMLファイル行#1:エラーinflating class android.support.constraint.ConstraintLayout" –

0

....

public static int Pixel_To_DP(int pixel) { 
    return (int) (pixel/ Resources.getSystem().getDisplayMetrics().density); 
} 
+0

ありがとうMohd、私はそれを試してみましょう –

関連する問題