0

私は二つのボタンを配置する新しいレイアウトページを作成しようとしていますし、各ボタンの上の上の私は、フレームアニメーションを与える必要があります。だからボタンをロードすると、泡の中のように見えます。続いて、私はこれを達成するために使用していたコードは次のとおりです。新しいアプリケーションのアニメーションとレイアウトの問題?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background_full"> 
    <Button android:id="@+id/btnMusic" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:gravity="center" 
      android:layout_marginLeft="215dp" 
      android:layout_marginTop="140dp" 
      android:background="@drawable/icon"/> 
    <ImageView android:id="@+id/imgMusic" 
     android:layout_width="150dp" 
      android:layout_height="150dp" 
      android:gravity="center" 
      android:layout_marginLeft="170dp" 
      android:layout_marginTop="100dp" 
      android:background="@drawable/button_background"/>  
    <Button android:id="@+id/btnMovies" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:gravity="center" 
      android:layout_marginLeft="405dp" 
      android:layout_marginTop="140dp" 
      android:background="@drawable/icon1"/> 
    <ImageView android:id="@+id/imgMovies" 
     android:layout_width="150dp" 
      android:layout_height="150dp" 
      android:gravity="center" 
      android:layout_marginLeft="360dp" 
      android:layout_marginTop="100dp" 
      android:background="@drawable/button_background"/> 
    </RelativeLayout> 

マイJAVコードは、このようなものです:

public class BubbleActivity extends Activity { 
    /** Called when the activity is first created. */ 
    /** Called when the activity is first created. */ 
    Button btnMusic, btnMovies ; 
    ImageView imgMusic,imgMovies; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 
} 
    @Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 
     btnMusic = (Button)findViewById(R.id.btnMusic); 
     btnMovies = (Button)findViewById(R.id.btnMovies); 
     btnMusic.setOnClickListener(new View.OnClickListener() 
      { 
       public void onClick(View v) { 
        Intent intent = new Intent(PixieActivity.this,Splash.class); 
        startActivity(intent); 
       } 
      }); 
     ImageView imgMusic = (ImageView)findViewById(R.id.imgMusic);           
     imgMusic.setBackgroundResource(R.drawable.frame_animation); 
     AnimationDrawable frameAnimation =(AnimationDrawable) imgMusic.getBackground(); 
     if (frameAnimation.isRunning()) { 
      frameAnimation.stop(); 
      } 
      else { 
     frameAnimation.start(); 
      } 
    ImageView imgMovies = (ImageView)findViewById(R.id.imgMovies);           
     imgMovies.setBackgroundResource(R.drawable.frame_animation); 
     AnimationDrawable frameAnimation1 =(AnimationDrawable) imgMovies.getBackground(); 
     if (frameAnimation1.isRunning()) { 
      frameAnimation1.stop(); 
      } 
      else { 
      frameAnimation1.start(); 
      } 
    }} 

しかしによるボタンレイアウトが異なる携帯電話の解像度に気を取られるようになったの余白に

。デバイス解像度に依存しない同じレイアウトを実現する他の方法はありますか?また、私は次のページで作るアイコンのそれぞれにバブルアニメーションを追加したいと思います。助けてください。

答えて

0

私はそれが完全にスケーラブルであるので、その後layout_weightを使用して間隔を設定し、マージンをハードコーディングない示唆し、代わりのLinearLayoutのボタンとImageViewsそれぞれをラップします。あなたは正確に80×80と正確に150X150すべきImageViewのようにボタンが必要な場合は

実際のレイアウトの選択が依存します。例えば

(擬似コード:明らかに多くのパラメータが省略されている):

<RelativeLayout> 
    <LinearLayout id="buttons" > 
     <LinearLayout layout_width = "0dp" layout_weight = "1"> <!-- 0 width is important! --> 
      <Button layout_gravity="center" /> 
     </LinearLayout> 
     <LinearLayout layout_width = "0dp" layout_weight = "1"> 
      <Button layout_gravity="center" /> 
     </LinearLayout> 
    </LinearLayout> 

    <LinearLayout id="images" align with @buttons> 
     <LinearLayout layout_width = "0dp" layout_weight = "1"> 
      <ImageView layout_gravity="center" /> 
     </LinearLayout> 
     <LinearLayout layout_width = "0dp" layout_weight = "1"> 
      <ImageView layout_gravity="center" /> 
     </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 

をそして、ちょうど同じ高さとなるように全幅にLinearLayouts「ボタン」と「画像」を設定していることを確認しますボタンと画像が重なってしまいます。 layout_weightの詳細:What does android:layout_weight mean?

ButtonsとImageViewsを正確なサイズにする必要がない場合は、重量でサイズを変更することも考えてください。その後、関係なく、あなたがlayout_weightを通してそれの1/4を取るためにボタンを伝える場合は、オンになっているどのような画面、それが歪んだことはありません