【发布时间】:2019-11-26 08:28:53
【问题描述】:
我想截取框架布局并使用意图共享它。问题是截图后,我的图像背景变黑了。任何人都可以请帮助解决这个问题。我想让背景变成正常的白色。
这是我的代码
public void sharePetrol()
{
bitmap = screenShot(layPetrol);
shareBitmap(bitmap);
}
public Bitmap screenShot(View view)
{
view.measure(View.MeasureSpec.makeMeasureSpec(view.getWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(view.getHeight(), View.MeasureSpec.EXACTLY));
view.layout((int) view.getX(), (int) view.getY(), (int) view.getX() + view.getMeasuredWidth(), (int) view.getY() + view.getMeasuredHeight());
view.setDrawingCacheEnabled(true);
view.buildDrawingCache(true);
Bitmap createBitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
return createBitmap;
}
public void shareBitmap(Bitmap bitmap)
{
Date now = new Date();
android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now);
String fileName = now + ".jpg";
String directoryPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Screenshots";
File directory = new File(directoryPath);
if(!directory.exists())
{
directory.mkdir();
}
File imageFile = new File(directoryPath, fileName);
try
{
FileOutputStream outputStream = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
outputStream.flush();
outputStream.close();
Uri uri = Uri.fromFile(imageFile);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/jpeg");
intent.putExtra(Intent.EXTRA_STREAM, uri);
try
{
startActivity(Intent.createChooser(intent, "Share Screenshot"));
}
catch (ActivityNotFoundException e)
{
Toast.makeText(PetrolActivity.this, "No App Available", Toast.LENGTH_SHORT).show();
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
`
【问题讨论】:
标签: android share screenshot