마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼 사용하여 이미지(캐릭터) 왼쪽/ 오른쪽 이동

0 추천
버튼 사용하여 이미지(캐릭터) 왼쪽/ 오른쪽 이동

버튼 두개를 만들어서 이미지를 왼쪽 버튼을 누르면 왼쪽으로 한칸씩 이동

오른쪽 버튼을 누르면 오른쪽으로 한칸씩 이동하는 코드를 짜고 있는데요.

버튼 생성하고 코드를 OnClick로 하면 되는건가요?

OnTouch로 하면 되는건가요? 그리고 왼쪽, 오른쪽 코드는 뭘로 해야할지..

막막하네요 ㅠㅠㅠ
martin_Mac (370 포인트) 님이 2013년 5월 2일 질문

2개의 답변

0 추천
 
채택된 답변

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
 
    <FrameLayout
        android:layout_width="1000dp"
        android:layout_height="300dp">
     <com.example.viewexam.Character
         android:id="@+id/character"
         android:layout_width="match_parent"
         android:layout_height="match_parent"/>   
    </FrameLayout>
   
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
       
        <Button
            android:id="@+id/btnLeft"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="왼쪽"/>
       
        <Button
            android:id="@+id/btnRight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="오른쪽"/>
       
    </LinearLayout>
      
</LinearLayout>

<!------------------------------------------- main.xml ------------------------------------------------>

 

////////////////////////////////////////////////////// ViewExamActivity/////////////////////////////////////////////////

package com.example.viewexam;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ViewExamActivity extends Activity {
 private Character character;
 public static int X = 100;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  character = (Character)findViewById(R.id.character);
  
  Button btnLeft = (Button)findViewById(R.id.btnLeft);
  btnLeft.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    X -= 10;
   }
  });
  
  Button btnRight = (Button)findViewById(R.id.btnRight);
  btnRight.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    X += 10;
   }
  });
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.view_exam, menu);
  return true;
 }

}

 

////////////////////////////////////////////////////////////////// Character.java  ///////////////////////////////////////////////////////////

package com.example.viewexam;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class Character extends View{

 private Paint paint;
 private Bitmap bitmap;

 public Character(Context context, AttributeSet attrs) {
  super(context, attrs);
  // TODO Auto-generated constructor stub
  bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
 }

 @Override
 protected void onDraw(Canvas canvas) {
  // TODO Auto-generated method stub
  super.onDraw(canvas);
  canvas.drawBitmap(bitmap, ViewExamActivity.X, 100, paint);
  invalidate();
 } 
}

방금 만들어 보았습니다. 이대로 하시면 됩니다.

센스가이 (2,010 포인트) 님이 2013년 5월 2일 답변
martin_Mac님이 2013년 5월 2일 채택됨
0 추천
누르고 있어도 한번만 이동이면 온 클릭으로 하면 되겠죠

누르고 있으면 계속 이동으로 하실거면 온 터치로 하시구요

오른쪽 왼쪽은 왼쪽버튼 눌렀을때는 왼쪽으로 좌표이동(좌표감소)

오른쪽으로 이동은 오른쪽으로 좌표이동(좌표증가) 이렇게 하시면 되겠지요
고또 (6,100 포인트) 님이 2013년 5월 2일 답변
...