===== main =====
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity
{
Character character;
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
character = (Character)findViewById( R.id.character );
Button btnLeft = (Button)findViewById( R.id.btnLeft );
btnLeft.setOnClickListener( new OnClickListener()
{
public void onClick( View v )
{
character.move( -1 );
}
} );
Button btnRight = (Button)findViewById( R.id.btnRight );
btnRight.setOnClickListener( new OnClickListener()
{
public void onClick( View v )
{
character.move( 1 );
}
} );
}
}
===== Character =====
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.Display;
import android.view.View;
import android.view.WindowManager;
public class Character extends View
{
Paint paint;
Bitmap bitmap;
int X;
int sw; // 스크린넓이
int c; // 이미지 넓이의 절반
public Character( Context context, AttributeSet attrs )
{
super( context, attrs );
WindowManager wm = (WindowManager)context.getSystemService( Context.WINDOW_SERVICE );
Display display = wm.getDefaultDisplay();
sw = display.getWidth();
bitmap = BitmapFactory.decodeResource( getResources(), R.drawable.ball );
c = bitmap.getWidth() / 2;
X = sw/ 2; // 초기 X값을 구한다. (가운데)
}
@Override
protected void onDraw( Canvas canvas )
{
super.onDraw( canvas );
canvas.drawBitmap( bitmap, ( X - c ), 0, paint );
invalidate();
}
public void move( int d )
{
int dx = X + ( 30 * d ); // 왼쪽은 마이너스, 오른쪽은 플러스
if ( dx > c && dx < ( sw - c ) )
{
X = dx;
}
}
}
===============
move 부분을 더 연구해보세요.