私は4つのボタン(上、下、左、右)を使用し、画像もあります。UPボタンを押すとそれに応じて画像を移動する必要があり、画像を上方向に移動する必要があり、左を押すと同様に両方の方向に画像を移動する必要があります.onclickリスナーを使用してから、を使用して画像を移動しようとしていますX、Y 座標。X、Y 座標の取り方がわかりません。
これがコードです。
public class MainActivity extends Activity implements OnClickListener {
Button up,left,right,down;
ImageView i1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
up=(Button)findViewById(R.id.button1);
left=(Button)findViewById(R.id.button2);
right=(Button)findViewById(R.id.button3);
down=(Button)findViewById(R.id.button4);
i1=(ImageView)findViewById(R.id.imageView1);
up.setOnClickListener(this);
}
public void onClick(View arg0) {
Toast.makeText(getApplication(),"UP",5000).show();
RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams)
i1.getLayoutParams();
int x = (int)getRawx();
int y = (int)getRawY();
mParams.leftMargin = x-50;
mParams.topMargin = y-50;
i1.setLayoutParams(mParams);
}
}
こんにちは、以下のコードを更新しましたので確認してください。
パッケージcom.example.motion;
public class MainActivity extends Activity implements OnClickListener {
Button up,left,right,down;
ImageView i1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
up=(Button)findViewById(R.id.button1);
left=(Button)findViewById(R.id.button2);
right=(Button)findViewById(R.id.button3);
down=(Button)findViewById(R.id.button4);
i1=(ImageView)findViewById(R.id.imageView1);
up.setOnClickListener(this);
down.setOnClickListener(this);
left.setOnClickListener(this);
right.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.button1:
{
Toast.makeText(getApplication(),"UP",Toast.LENGTH_SHORT).show();
RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams)
i1.getLayoutParams();
mParams.topMargin -= 20;
i1.setLayoutParams(mParams);
break;
}
case R.id.button4:
{
Toast.makeText(getApplication(),"DOWN",Toast.LENGTH_SHORT).show();
RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams)
i1.getLayoutParams();
mParams.topMargin += 20;
i1.setLayoutParams(mParams);
break;
}
case R.id.button2:
{
Toast.makeText(getApplication(),"LEFT",Toast.LENGTH_SHORT).show();
RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams)
i1.getLayoutParams();
mParams.leftMargin -= 20;
i1.setLayoutParams(mParams);
break;
}
case R.id.button3:
{
Toast.makeText(getApplication(),"RIGHT",Toast.LENGTH_SHORT).show();
RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams)
i1.getLayoutParams();
mParams.leftMargin += 20;
i1.setLayoutParams(mParams);
break;
}
}
}
}