如何删除旋转位图后出现的黑色背景?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除旋转位图后出现的黑色背景?相关的知识,希望对你有一定的参考价值。
如何删除rotating bitmap
之后的黑色背景?我尝试了不同的方法,但似乎没有一种方法可行。请帮我找个出路!
这是我生成的代码
图片:
<!-- language: lang-java -->
if (view.getId() == R.id.save_btn) {
emojiOn = false;
timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
drawView.setDrawingCacheEnabled(true);
if (drawView.getDrawingCache() != null)
drawView.destroyDrawingCache();
drawView.buildDrawingCache();
AlertDialog.Builder saveDialog = new AlertDialog.Builder(this);
saveDialog.setTitle("Save drawing");
saveDialog.setMessage("Save drawing to device Gallery?");
saveDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Matrix matrix = new Matrix();
matrix.setRotate(Rotation);
Bitmap b = drawView.getDrawingCache();
b = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), matrix, true);
String imgSaved = MediaStore.Images.Media.insertImage(getContentResolver(), b, timeStamp, "drawing");
if (imgSaved != null)
Toast.makeText(getApplicationContext(), "Drawing saved to gallery!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getApplicationContext(), "Oops! Image could not be saved.", Toast.LENGTH_SHORT).show();
drawView.destroyDrawingCache();
}
});
saveDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
saveDialog.show();
}
答案
您必须使用位图对象b.setHasAlpha(true);
在声明位图后立即放置该行代码。
以上是关于如何删除旋转位图后出现的黑色背景?的主要内容,如果未能解决你的问题,请参考以下文章
如何删除android Viewpager周围显示的黑色边框