我试图从手机的画廊中选择一个图像,并将图像路径传递到另一个活动中,在那里它得到预览的用户。
我在另外两个设备上测试过这个(Moto E和一个叫酷派的东西?)他们似乎都工作得很好。
(调试Android源代码似乎不是一个可行的选择。)
在main活动中,在UI触发器上,我用以下代码启动了gallery picker:
private void dispatchPickPictureIntent() {
Intent pickPictureIntent = new Intent(Intent.ACTION_PICK);
pickPictureIntent.setType("image/*");
startActivityForResult(pickPictureIntent, REQUEST_IMAGE_PICK);
}
我这样处理结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_PICK && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
mCurrentPhotoPath = getRealPathFromURI(this, selectedImage);
launchUploadActivity();
}
}
private String getRealPathFromURI(Context context, Uri uri) {
Cursor cursor = null;
try {
String [] proj = {MediaStore.Images.Media.DATA};
cursor = context.getContentResolver().query(uri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null)
cursor.close();
}
}
一旦获得存储在全局变量MCurrentPhotoPath
中的文件路径,就会调用以下方法:
private void launchUploadActivity() {
Intent intent = new Intent(HomeActivity.this, UploadActivity.class);
intent.putExtra(getString(R.string.photo_path), mCurrentPhotoPath);
startActivityForResult(intent, REQUEST_IMAGE_UPLOAD);
}
private void previewPhoto() {
imageView.setVisibility(View.VISIBLE);
BitmapFactory.Options options = new BitmapFactory.Options();
// Avoid OutOfMemory Exception
options.inSampleSize = 8;
// This line returns a null, only on the Xiaomi device
final Bitmap bitmap = BitmapFactory.decodeFile(photopath, options);
imageView.setImageBitmap(bitmap);
}
现在我已经尝试调试这个问题,但是一旦我进入BitMapFactory的源代码,我就会发现Android Studio的一个似乎尚未解决的问题(https://stackoverflow.com/a/40566459/3438497),这使得它变得毫无用处。
任何关于我如何从这里开始的建议都将不胜感激。
因此,我能够将问题缩小到一个不正确的文件路径。Uri to filepath函数没有在所有设备上获得所需的结果。
我使用了这里建议的方法:https://stackoverflow.com/a/7265235/3438497
并对代码进行了一点调整,以便在从gallery中选择图像时,我直接使用图像的Uri。
我创建了一个意图选择器,用于从图库或相机中选择任何图像。它在模拟器和其他设备上工作正常,但是当我使用redmi note 4测试它时,它显示“没有应用程序可以执行此操作”。 代码在这里- 请帮帮我!我错过什么了吗?
问题内容: 我需要在手机中打开我的画廊,然后选择一张在活动中在imageview中打开的图片..没什么困难..但是我在模拟器(genymotion)中有完美的代码和thise代码可以运行..但是在小米Mi4上却没有。 打开画廊选择项目,什么也没有。 我没有更多的电话了:( 我尝试下载一些与此主题相关的示例,并且每个示例都是相同的。 您是否有一些从图库中选择图像并在imageview中显示的项目?如
编辑:我调试了应用程序,并用初始化了。这消除了错误,但是现在ImageView没有得到更新,但是当我从Gallery中选择image时,它已经更新了。
自动滚动是个问题 我使两个回收视图相互依赖的水平滚动和中心选择。 因此,我的问题是使用Notifydatasetchanged方法,并将recyclerView位置重置为0,它滚动选择范围,因为它返回了错误的索引。。。 当我想在更改数据后获取中心选择索引时。我使用下面的示例通过一些编辑来实现这一点。 滚动时获取RecycleView的中心可见项 我需要将第一个recyclerView适配器上的滚动
我试图显示一个对话框,在那里按下图像按钮,然后从图库中选择图片或从相机中拍摄一些图片。我已经在努力选择一个图像并将其插入到正确的图像视图中。 现在,单击ImageButton(android:id=“@ id/imageSelect”)将显示对话框,然后选择从图库中选择,但它将图像插入(android:id=“@ id/imageSelect1),应该插入到(android:id=”@ id/im
我的代码在下面..在中 在onActivityResult(int requestCode,int resultCode,Intent data)中