안녕하세요. 이미지 다루는걸 공부하고 있는데요.
책에 있는대로 했는데도 안되네요. 왜 안되는건가요?
DisplayImage(activity)와 imageView(surfaceview)가 있구요
main.xml의 레이아웃에 com.android.displayimage.ImageView로 넣은 상태입니다.
-----------------main.xml----------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.android.displayimage.ImageView
android:id="@+id/imageview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
----------------------------DisplayImage.java-----------------------------------
package com.android.displayimage;
public class DisplayImage extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
-----------------------------ImageView.java---------------------------------------
package com.android.displayimage;
public class ImageView extends SurfaceView implements Callback {
private Bitmap mImgBack0;
private Bitmap mImgBack1;
private Bitmap mImgBack21;
private Bitmap mImgBack31;
private int mPlayerWidth;
private int mPlayerHeight;
private Drawable mFrontImage[] = new Drawable[4];
Canvas mCanvas = null;
SurfaceHolder mHolder = getHolder();
public ImageView(Context context, AttributeSet attrs) {
super(context, attrs);
Resources res = context.getResources();
mFrontImage[0]= context.getResources().getDrawable(R.drawable.front01);
mFrontImage[1]= context.getResources().getDrawable(R.drawable.front02);
mFrontImage[2]= context.getResources().getDrawable(R.drawable.front03);
mFrontImage[3]= context.getResources().getDrawable(R.drawable.front04);
mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img0);
mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img1);
mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img21);
mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img31);
mPlayerWidth = mFrontImage[1].getIntrinsicWidth();
mPlayerHeight = mFrontImage[1].getIntrinsicHeight();
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
canvas.drawBitmap(mImgBack0, 0, 0, null);
canvas.drawBitmap(mImgBack1, 0, 90, null);
canvas.drawBitmap(mImgBack21, 0, 190, null);
canvas.drawBitmap(mImgBack31, 0, 310, null);
for(int i=0;i<4 ; i++){
mFrontImage[i].setBounds(40+60*i, 360,40+60*i+mPlayerWidth, 360+mPlayerHeight );
mFrontImage[i].draw(canvas);
}
}
}