设置图像位图在 android 棉花糖中不起作用
Set image bitmap not working in android marshmallow
当我使用设置图像 Bitmap
方法在 ImageView
中设置 Bitmap
时,它在 android kitkat
中工作正常,但在 Marshmallow
它不起作用,我尝试通过复制图像 Bitmap
但没有成功,
请帮助我解决这个问题任何帮助将不胜感激
PictureCallback cameraPictureCallbackJpeg = new PictureCallback()
{
@Override
public void onPictureTaken(byte[] data, Camera camera)
{
// TODO Auto-generated method stub
Bitmap cameraBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
int wid = cameraBitmap.getWidth();
int hgt = cameraBitmap.getHeight();
// Toast.makeText(getApplicationContext(), wid+""+hgt, Toast.LENGTH_SHORT).show();
newImage = Bitmap.createBitmap
(wid, hgt, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newImage);
canvas.drawBitmap(cameraBitmap, 0f, 0f, null);
Drawable drawable = getResources().getDrawable(R.drawable.mark3);
drawable.setBounds(20, 30, drawable.getIntrinsicWidth()+20, drawable.getIntrinsicHeight()+30);
drawable.draw(canvas);
lastimage = newImage.copy(newImage.getConfig(), true);
if (newImage != null && !newImage.isRecycled()) {
newImage.recycle();
newImage = null;
}
imageview_visinon.setVisibility(View.VISIBLE);
imageview_visinon.setImageBitmap(newImage);
linear_capture.setVisibility(View.GONE);
linear_okcancelpic.setVisibility(View.VISIBLE);
}
};
有时位图太大。这就是为什么 imageview 变成空白的原因!我想在这里你可以找到你需要的东西:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
boolean hasPermission = (ContextCompat.checkSelfPermission(getBaseContext(),
Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasPermission) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.RECORD_AUDIO, Manifest.permission.MODIFY_AUDIO_SETTINGS, Manifest.permission.INTERNET
},
112);
}
}
当我使用设置图像 Bitmap
方法在 ImageView
中设置 Bitmap
时,它在 android kitkat
中工作正常,但在 Marshmallow
它不起作用,我尝试通过复制图像 Bitmap
但没有成功,
请帮助我解决这个问题任何帮助将不胜感激
PictureCallback cameraPictureCallbackJpeg = new PictureCallback()
{
@Override
public void onPictureTaken(byte[] data, Camera camera)
{
// TODO Auto-generated method stub
Bitmap cameraBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
int wid = cameraBitmap.getWidth();
int hgt = cameraBitmap.getHeight();
// Toast.makeText(getApplicationContext(), wid+""+hgt, Toast.LENGTH_SHORT).show();
newImage = Bitmap.createBitmap
(wid, hgt, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newImage);
canvas.drawBitmap(cameraBitmap, 0f, 0f, null);
Drawable drawable = getResources().getDrawable(R.drawable.mark3);
drawable.setBounds(20, 30, drawable.getIntrinsicWidth()+20, drawable.getIntrinsicHeight()+30);
drawable.draw(canvas);
lastimage = newImage.copy(newImage.getConfig(), true);
if (newImage != null && !newImage.isRecycled()) {
newImage.recycle();
newImage = null;
}
imageview_visinon.setVisibility(View.VISIBLE);
imageview_visinon.setImageBitmap(newImage);
linear_capture.setVisibility(View.GONE);
linear_okcancelpic.setVisibility(View.VISIBLE);
}
};
有时位图太大。这就是为什么 imageview 变成空白的原因!我想在这里你可以找到你需要的东西:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
boolean hasPermission = (ContextCompat.checkSelfPermission(getBaseContext(),
Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasPermission) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.RECORD_AUDIO, Manifest.permission.MODIFY_AUDIO_SETTINGS, Manifest.permission.INTERNET
},
112);
}
}