2014-02-16 1 views
0

제 질문은 for 루프의 도움으로 생성 된 위치를 변경하고 싶습니다. 그러나 많이 겹치고 있습니다. 어떻게 제거 할 수 있습니까?프로그래밍 방식으로 안드로이드에서 내 이미지 버튼의 위치를 ​​변경하고 싶습니다.

package com.example.applecounter; 

    import java.util.Random; 

    import android.media.MediaPlayer; 
    import android.os.Bundle; 
    import android.app.Activity; 
    import android.content.Context; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.view.ViewGroup.LayoutParams; 
    import android.widget.FrameLayout; 
    import android.widget.ImageButton; 
    import android.widget.RelativeLayout; 
    import android.widget.TextView; 
    import android.widget.Toast; 

    public class Play extends Activity implements OnClickListener { 
     final Context context = this; 
     int counter = 0; 
     private MediaPlayer mplayer; 
     private TextView txt; 
     int left = 0; 
     int top = 0; 
     int right= 0; 
     int bottom=0; 
     private ImageButton bt[]; 

     /*Here i have my OnCreate function*/ 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_play); 
      RelativeLayout rl = (RelativeLayout) findViewById(R.id.RelativeLayout1); 
      rl.setBackgroundResource(R.drawable.background); 
      /*Here i have which creates my Imagebutton*/ 
      for (int i = 0; i <2; i++) { 
       ImageButton btn = new ImageButton(this); 
       btn.setBackgroundResource(R.drawable.apple); 
       RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
         LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
       btn.setLayoutParams(params); 
       btn.setId(1); 
       params.width = 83; 
       params.height = 80; 
       //params.setMargins(10, 12, 50, 0); 
       btn.setLayoutParams(params); 
       params.setMargins(left,top,right,bottom); 
       rl.addView(btn); 
       btn.setOnClickListener(this); 
    /*Here i have both addview and onclicklistener*/ 
      } 
     } 
     /*Here i have OnClick view for mhy button*/ 
     @Override 
     public void onClick(View v) { 
      switch (v.getId()) { 
// Here i have switch case// 
      case 1: 
       v.setVisibility(View.GONE); 
       mplayer = MediaPlayer.create(this, R.raw.sound); 
       //txt.setText("" + counter); 
       //counter++; 
       break; 
      default: 
      } 
     } 
    } 

난에 대한 루프 그래서 그것의 너무 많이 중첩하여 ImageButton을 만들 나의 questin 각 버튼에 대한 방법 randomzie psotion입니까?

답변

0

당신은 그래서 당신이 두 버튼에받은 위치를 설정할 것을 의미

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
         LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of); 

btn.setLayoutParams(params); 
+0

을이 밖으로 시도 싶어 수는, 그래서 질문은 여러 버튼이 코드를 처리하는 방법은? – user3248914

+0

각 단추에 대해 setId()를 사용하여 해당 단추를 ID로 표시하고이 ID를 사용하여 각 단추를 다르게 처리 할 수 ​​있습니다. – Fayaz

+0

그러나 여전히 겹침 – user3248914

관련 문제