gpt4 book ai didi

Android从路径加载图像到imageView

转载 作者:行者123 更新时间:2023-12-04 13:46:36 26 4
gpt4 key购买 nike

我正在尝试将图像从本地存储中的文件路径加载到 imageView。

private final String PATH = "file:///storage/emulated/0/Downloads/image.png"

正如论坛其他地方所建议的那样,我尝试使用 Glide 加载它:
 Glide.with(this)
.load(PATH)
.into(imageView);

和位图/位图工厂:
ImageView imageView = (ImageView) findViewById(R.id.imageView);

File f = new File(PATH);

if(f.exists()){

Bitmap myBitmap = BitmapFactory.decodeFile(f.getAbsolutePath());

imageView.setImageBitmap(myBitmap);

但我总是得到占位符图像。

在 list 中,我添加了权限 WRITE.EXTERNAL.STORAGE 和 READ.EXTERNAL.STORAGE。

尝试调试它似乎在 f 变量中加载了正确的路径。

感谢帮助

编辑:我已经尝试了所有建议的解决方案,但我继续进入空白屏幕......

我还用一个 imageView 制作了一个全新的应用程序,只是为了更好地测试:
package com.example.android.pic;


import android.Manifest;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Environment;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

import java.io.File;

public class MainActivity extends AppCompatActivity {


Uri PATH = Uri.fromFile(new File((Environment.getExternalStorageDirectory().getPath() + "/Pictures/agata.png")));




@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

int permissionCheck = ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);


if (permissionCheck != PackageManager.PERMISSION_GRANTED) {

if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

} else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

}


}
ImageView imageView = (ImageView) findViewById(R.id.pic);

Glide.with(this)
.load(PATH)
.into(imageView);

}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

switch (requestCode) {
case 1: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
ImageView imageView = (ImageView) findViewById(R.id.pic);

Glide.with(this)
.load(PATH)
.into(imageView);
} else {
finish();

}

}
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}

请帮忙!
谢谢

最佳答案

您应该使用此代码

final InputStream imageStream = getContentResolver().openInputStream(imageUri);

final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);

image.setImageBitmap(selectedImage);

在此代码中,您需要可以使用 StringPATH 的 imageUri:
private final StringPATH="/storage/emulated/0/Downloads/image.png"

关于Android从路径加载图像到imageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46295620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com