Android 如何在保存的位图上放置另一个图像?
是否可以将图像另存为新背景,以便在添加新图像时与先前添加的图像合并?请再次帮助我,谢谢:) 这是代码。在flatimage按钮上,它展平了组合的背景、标签和图像,并将其放在ImageView上,一旦放在ImageView上,我希望它成为背景图像,我可以添加更多标签,并将其再次展平为1位图像。请帮帮我谢谢Android 如何在保存的位图上放置另一个图像?,android,image,canvas,bitmap,save,Android,Image,Canvas,Bitmap,Save,是否可以将图像另存为新背景,以便在添加新图像时与先前添加的图像合并?请再次帮助我,谢谢:) 这是代码。在flatimage按钮上,它展平了组合的背景、标签和图像,并将其放在ImageView上,一旦放在ImageView上,我希望它成为背景图像,我可以添加更多标签,并将其再次展平为1位图像。请帮帮我谢谢 protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub s
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.createpage1);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(new Date());
mTempDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/" + "PixiePhotos" + "/";
//mCurrent = "PXD_" + timeStamp + ".jpg";
prepareDirectory();
save = (Button)findViewById(R.id.save);
flatimage = (Button)findViewById(R.id.flatimage);
chooseimage = (Button)findViewById(R.id.chooseImage);
compositeImageView = (ImageView)findViewById(R.id.compositeImageView);
tapimageview = (ImageView) findViewById(R.id.tapimageview);
// imageView5 = (ImageView)findViewById(R.id.imageView5);
imageView4 = (ImageView) findViewById(R.id.imageView4);
imageView4.setOnTouchListener(this);
tapimageview.setImageURI(Uri.parse("android.resource://"
+ getPackageName() +"/"+R.drawable.cork));
compositeImageView.setOnTouchListener(this);
chooseimage.setOnClickListener(this);
imageView4.setImageBitmap(drawingBitmap);
//tapimageview.setDrawingCacheEnabled(true);
//bgimage = tapimageview.getDrawingCache();
viewBitmap = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
canvas = new Canvas(viewBitmap);
tapimageview.draw(canvas);
// tapimageview.draw(canvas);
//canvas.drawBitmap(bmp, 90, 0, paint);
flatimage.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
public void onClick(View v) {
Log.v(TAG, "Save Tab Clicked");
//i is imageview whch u want to convert in bitmap
canvas.drawBitmap(bmp, 0, 0, paint);
canvas.drawBitmap(drawingBitmap, matrix, paint);
canvas.drawBitmap(bmpstickers, matrix, paint);
mBitmapDrawable = new BitmapDrawable(viewBitmap);
tapimageview.setImageBitmap(mBitmapDrawable.getBitmap());
mCurrent = "PXD_" + new SimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(new Date()) + ".jpg";
}
});
save.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
public void onClick(View v) {
Log.v(TAG, "Save Tab Clicked");
viewBitmap = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);//i is imageview whch u want to convert in bitmap
canvas = new Canvas(viewBitmap);
tapimageview.draw(canvas);
canvas.drawBitmap(bmp, 0, 0, paint);
canvas.drawBitmap(drawingBitmap, matrix, paint);
canvas.drawBitmap(bmpstickers, matrix, paint);
tapimageview.setImageBitmap(mBitmapDrawable.getBitmap());
try {
mBitmapDrawable = new BitmapDrawable(viewBitmap);
mCurrent = "PXD_" + new SimpleDateFormat("yyyyMMdd_HHmmss",
Locale.getDefault()).format(new Date()) + ".jpg";
mNewSaving = ((BitmapDrawable) mBitmapDrawable).getBitmap();
String FtoSave = mTempDir + mCurrent;
File mFile = new File(FtoSave);
mFileOutputStream = new FileOutputStream(mFile);
mNewSaving.compress(CompressFormat.JPEG, 100, mFileOutputStream);
mFileOutputStream.flush();
mFileOutputStream.close();
} catch (FileNotFoundException e) {
Log.v(TAG, "FileNotFoundExceptionError " + e.toString());
} catch (IOException e) {
Log.v(TAG, "IOExceptionError " + e.toString());
}
}
});
}
因此,如果我理解正确,在您单击
flatImage
之后,您想将背景更改为一个位图,该位图是一组其他位图合并为一个位图?是的,这就是我想要的。你能看看我的密码吗?我做的对吗?谢谢:)@donfuxxx因为这个应用程序做的是,我先放一个背景、贴纸和一个图像,然后单击平面图像,我想现在将平面图像作为背景,并且能够再次添加贴纸,一旦我再次单击平面图像按钮,事情是它覆盖了我创建的第一个。。嗯,你明白我的意思吗,先生?呵呵,我真的不知道该怎么办。。