java - glide 不从 sdcard 加载图像
问题描述
我想在我的 sdcard 中放一张图片,但它没有显示,我认为 glide 库或权限有问题,我在里面堆了 2 天,请帮助我。
public class MainActivity extends AppCompatActivity {
public final static String PATH_SD_CARD = "/Images/Mj.jpg";
private static final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 1;
@TargetApi(Build.VERSION_CODES.M)
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
!= getPackageManager().PERMISSION_GRANTED) {
// Should we show an explanation?
if (shouldShowRequestPermissionRationale(
Manifest.permission.READ_EXTERNAL_STORAGE)) {
// Explain to the user why we need to read the contacts
}
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
// MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE is an
// app-defined int constant that should be quite unique
return;
}
ImageView img = findViewById(R.id.imageView);
Glide.with(this)
.load(Environment.getExternalStorageDirectory().getAbsolutePath()+PATH_SD_CARD)
.into(img);
}
}
解决方案
您是否在 android manifest 文件中添加了权限,如下面的代码..
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
推荐阅读
- mariadb - 如何使用左连接正确联合
- tensorflow - 为什么将会话参数 is_trainning 设置为 false 到 batchNorm 层时,Tensorflow 分割网络返回空数据?
- ruby-on-rails - 如何使用 PDFKit/wkhtmltopdf 加载图像/预编译资产?导轨 5.2
- ios - 如何知道 HTTPRequest (Swift) 之后所有任务何时完成
- c++ - 我应该删除在函数中创建的使用过的指针吗?
- docker - Dockerfile ENTRYPOINT 脚本:现有文件上的“没有这样的文件或目录”
- docker - 在另一个 Dockerized 容器中运行 docker-compose
- sql - PostgreSQL 平均时间戳差异(按组)
- c# - 如何将两个元素绑定到 WPF 中的同一属性 - C#
- c - C 中的数组包含不正确的值