Mega Code Archive

 
Categories / Android / 2D Graphics
 

Bitmap createBitmap

package app.test; import java.io.FileNotFoundException; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuffXfermode; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.Display; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class Test extends Activity implements OnClickListener {   Button choosePicture1, choosePicture2;   ImageView compositeImageView;   Bitmap bmp1, bmp2;   Canvas canvas;   Paint paint;   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     compositeImageView = (ImageView) this         .findViewById(R.id.CompositeImageView);     choosePicture1 = (Button) this.findViewById(R.id.ChoosePictureButton1);     choosePicture2 = (Button) this.findViewById(R.id.ChoosePictureButton2);     choosePicture1.setOnClickListener(this);     choosePicture2.setOnClickListener(this);   }   public void onClick(View v) {     Intent choosePictureIntent = new Intent(Intent.ACTION_PICK,         android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);     startActivityForResult(choosePictureIntent, 1);   }   protected void onActivityResult(int requestCode, int resultCode,       Intent intent) {     super.onActivityResult(requestCode, resultCode, intent);     if (resultCode == RESULT_OK) {       Uri imageFileUri = intent.getData();       bmp1 = loadBitmap(imageFileUri);       Bitmap drawingBitmap = Bitmap.createBitmap(bmp1.getWidth(),           bmp1.getHeight(), bmp1.getConfig());       canvas = new Canvas(drawingBitmap);       paint = new Paint();       canvas.drawBitmap(bmp1, 0, 0, paint);       paint.setXfermode(new PorterDuffXfermode(           android.graphics.PorterDuff.Mode.MULTIPLY));       canvas.drawBitmap(bmp2, 0, 0, paint);       compositeImageView.setImageBitmap(drawingBitmap);     }   }   private Bitmap loadBitmap(Uri imageFileUri) {     Display currentDisplay = getWindowManager().getDefaultDisplay();     float dw = currentDisplay.getWidth();     float dh = currentDisplay.getHeight();     Bitmap returnBmp = Bitmap.createBitmap((int) dw, (int) dh,         Bitmap.Config.ARGB_4444);     try {       BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();       bmpFactoryOptions.inJustDecodeBounds = true;       returnBmp = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageFileUri), null, bmpFactoryOptions);       bmpFactoryOptions.inSampleSize = 2;       bmpFactoryOptions.inJustDecodeBounds = false;       returnBmp = BitmapFactory.decodeStream(getContentResolver()           .openInputStream(imageFileUri), null, bmpFactoryOptions);     } catch (Exception e) {       Log.v("ERROR", e.toString());     }     return returnBmp;   } }