开放画廊意向
Intent galleryIntent = new Intent( Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
galleryIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(galleryIntent, FILE_REQUEST);
非活动结果
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
selected_photo = data.getData();
String[] filePath = {MediaStore.Images.Media.DATA};
Cursor c = getContentResolver().query(selected_photo, filePath,null, null, null);
c.moveToFirst();
int columnIndex = c.getColumnIndex(filePath[0]);
picturePath = c.getString(columnIndex);
c.close();
Intent i = new Intent(First.this, Second.class);
i.putExtra("pic", picturePath);
startActivity(i);
}
第一个活动日志
E/BitmapFactory:无法解码流:java。伊奥。FileNotFoundException:46:打开失败:eNote(没有这样的文件或目录)
在下一个活动中,我发现这个函数中有错误
public Bitmap decodeBitmapFromPath(String filePath) {
Bitmap scaledBitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
scaledBitmap = BitmapFactory.decodeFile(filePath, options);
options.inSampleSize = calculateInSampleSize(options, 30, 30);
options.inDither = false;
options.inPurgeable = true;
options.inInputShareable = true;
options.inJustDecodeBounds = false;
scaledBitmap = BitmapFactory.decodeFile(filePath, options);
ExifInterface exif;
try {
exif = new ExifInterface(filePath);
int orientation = exif.getAttributeInt(
ExifInterface.TAG_ORIENTATION, 0);
Matrix matrix = new Matrix();
if (orientation == 6) {
matrix.postRotate(90);
} else if (orientation == 3) {
matrix.postRotate(180);
} else if (orientation == 8) {
matrix.postRotate(270);
}
scaledBitmap = Bitmap.createBitmap(scaledBitmap, 0, 0,
scaledBitmap.getWidth(), scaledBitmap.getHeight(), matrix,
true);
eW = scaledBitmap.getWidth();
eH = scaledBitmap.getHeight();
eM = matrix;
} catch (IOException e) {
e.printStackTrace();
FirebaseCrashlytics.getInstance().recordException(e);
}
return scaledBitmap;
}
第二个活动日志
JAVA伊奥。FileNotFoundException:46:open失败:在libcore上没有这样的文件或目录。伊奥。伊奥布里奇。在java上打开(IoBridge.java:492)。伊奥。文件输入流。(FileInputStream.java:160)在java上。伊奥。文件输入流。(FileInputStream.java:115)在android上。媒体出口接口。android上的initForFilename(ExifInterface.java:2531)。媒体出口接口。(ExifInterface.java:1500)在。第二项活动。decodeBitmapFromPath(SecondActivity.java:889)
现在,我如何在下一个活动中以位图的形式访问这张照片,并对其应用不同的效果?
如果您想从图库中选择图像,请尝试这个新的应用编程接口。它被称为ActivityResultLauncher
你不需要记住任何请求代码就可以得到结果,而且很容易使用
按照以下步骤从存储中访问图像并将其转换为位图:
>
ActivityResultLauncher<String> mGetContent =
registerForActivityResult(new GetContent(), new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
// Handle the returned Uri, We will get a bitmap from it here.
}
});
然后,点击按钮或任何你想要的地方启动系统图像选择器。
mGetContent.launch("image/*");
>
来自Uri方法的位图。
public statice Bitmap getBitmapFromUri(Context ctx, Uri uri) {
try {
if (uri != null) {
Bitmap bitmap =
MediaStore.Images.Media.getBitmap(ctx.getContentResolver(), uri);
}
} catch (Exception e) {
//handle exception
}
}
现在你可以在任何地方使用位图了。
但是宽度和高度较低的图像成功地加载到图像视图中! 有人能告诉我代码有什么问题吗?我做错了什么?我只想从库中导入相机图像,并在图像视图中显示它们!
所以有一点问题(这与-由于背景进程限制导致的相机崩溃有关 我有相当多的用户的手机将“不要保留活动”设置或“后台进程”设置为2或类似的东西,当打开其他意图时,这将导致应用程序似乎“崩溃” 所以我有一个类似这样的问题 Gallery的EXTRA_OUTPUT被忽略-它适用于相机(在onResume之后,我有临时图像的URI,之后我会处理它) 但是我该为本地画廊做些什么呢? 我目前从相机拍照的过程是 <
我想使用共享命令从图库获取图像。 我目前的代码是: imageUri 的值为:content://media/external/images/media/37 但是函数“openInputStream”会抛出错误“java.io.FileNotFoundException”。 通过下面的函数,我得到了图像的真实路径。 但我不知道如何将其转换为位图。
目前我有一个问题,当我从画廊回来时,活动被销毁并重新创建。 以下是步骤: > 从“照片片段”开始,我打算从图库中挑选图像: 转到我的应用程序(当前来自图库),并选择从第3步捕获的图像。 --- 你知道我的活动是如何重新创建的吗?以及如何修复?< br >我为此花了将近一天的时间,但还是没有结果。 任何帮助都非常感谢。谢谢。
问题内容: 我的应用程序中包含许多产品的网格。当用户选择网格中的一个项目时,我将启动一个新的“对话框”框,并显示该项目的名称,数量和图像。但是我不能动态发送图像源。 这是我的代码 我应该使用什么来从ImageView获取图像源? 问题答案: 像这样使用Bundle
获取系统首选项 进程: 主进程 例子: 1 const {systemPreferences} = require('electron') 2 console.log(systemPreferences.isDarkMode()) Copied! 事件列表 systemPreferences 对象提供以下事件: 事件: 'accent-color-changed' Windows 触发:用户在个性