Я пытаюсь отобразить растровое изображение, созданное мной в программе android, но все учебники, которые я нахожу, включают Drawables или XML для их отображения. Может кто-нибудь показать мне шаги, необходимые для отображения растрового изображения в коде?
Это не весь код, это просто большинство, остальное связано с работой камеры.
class Preview extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;
private Paint mPaint;
private Drawable bitmap;
private Bitmap currentprev;
private ImageView mImageView;
private Camera.PreviewCallback mPrevCallback = new Camera.PreviewCallback()
{
public void onPreviewFrame( byte[] data, Camera Cam ) {
Log.d("CombineTestActivity", "Preview registered");
Log.d("CombineTestActivity", "Data length = "
+ data.length );
// currentprev = BitmapFactory.decodeByteArray( data, 0,
// data.length );
currentprev = BitmapFactory.decodeResource( getResources(),
R.drawable.creature00 );
if( currentprev == null )
Log.d("CombineTestActivity", "currentprev is null" );
if( mImageView == null )
Log.d("CombineTestActivity", "mImageView is null" );
//Code fails here, gives null pointer exception
mImageView.setImageBitmap( currentprev );
Log.d("CombineTestActivity", "Preview Finished" );
}
};
private OnTouchListener mCorkyListener = new OnTouchListener() {
public boolean onTouch(View v, MotionEvent me) {
Log.d("CombineTestActivity", "touch registered" );
mCamera.takePicture( null, null, mPicCallback );
return false;
}
};
private Camera.PictureCallback mPicCallback = new Camera.PictureCallback() {
public void onPictureTaken( byte[] data, Camera mCamera ) {
Log.d("CombineTestActivity", "picture method run" );
}
};
Preview(Context context) {
super(context);
// Install a SurfaceHolder.Callback so we get notified when the
// underlying surface is created and destroyed.
mImageView = (ImageView)findViewById(R.id.imageview);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mPaint = new Paint();
bitmap = context.getResources().getDrawable(
R.drawable.creature00);
if( mImageView == null )
Log.d("CombineTestActivity", "mImageView is null" );
this.setOnTouchListener( mCorkyListener );
}