在Android中拾取画廊图像导致问题
我用一个非常简单的代码从图库中选取图像,它在我的手机上工作。 但在三到四部手机(Galaxy S3、平板电脑等)上进行测试,却无法奏效 工作环境: 如果我拍摄的图像大小低于500kb,那么它可以正常工作在Android中拾取画廊图像导致问题,android,imageview,android-gallery,Android,Imageview,Android Gallery,我用一个非常简单的代码从图库中选取图像,它在我的手机上工作。 但在三到四部手机(Galaxy S3、平板电脑等)上进行测试,却无法奏效 工作环境: 如果我拍摄的图像大小低于500kb,那么它可以正常工作 ImageView myimg; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContent
ImageView myimg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Toast.makeText(this, UUID.randomUUID().toString(),
// Toast.LENGTH_LONG).show();
myimg = (ImageView) findViewById(R.id.imageView1);
mybutton = (Button) findViewById(R.id.myButton);
mybutton.setOnClickListener(this);
}
public void onClick(View v) {
if (v == mybutton) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 0);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent imageReturnedIntent) {
switch (requestCode) {
case 0:
if (resultCode == RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex); // file path of
// selected
// image
cursor.close();
// Convert file path into bitmap image using below line.
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
// put bitmapimage in your imageview
myimg.setImageBitmap(yourSelectedImage);
}
}
}
它不工作的环境:
如果我拍摄的图像大小或在画廊中的图像大小超过500kb,那么它可以工作
ImageView myimg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Toast.makeText(this, UUID.randomUUID().toString(),
// Toast.LENGTH_LONG).show();
myimg = (ImageView) findViewById(R.id.imageView1);
mybutton = (Button) findViewById(R.id.myButton);
mybutton.setOnClickListener(this);
}
public void onClick(View v) {
if (v == mybutton) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 0);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent imageReturnedIntent) {
switch (requestCode) {
case 0:
if (resultCode == RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex); // file path of
// selected
// image
cursor.close();
// Convert file path into bitmap image using below line.
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
// put bitmapimage in your imageview
myimg.setImageBitmap(yourSelectedImage);
}
}
}
有人告诉过我们如何处理这种情况吗
任何帮助都将不胜感激。您知道它实际上在哪里“崩溃”吗?它不会崩溃:(这就是问题所在,但在这种情况下,我也看不到图像,根据我的分析,这似乎是尺寸问题。如果是尺寸问题,它会crash@UMAR你知道它是否通过switch语句吗?添加一些
Toast
语句以进行调试。找出它在代码中的位置是一个好的开始。