[英]glide not loading image from sdcard
我想在sdcard中放一個圖像,但它沒有顯示,我認為滑行庫或權限存在問題,我在其中堆放了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清單文件中添加了權限,如以下代碼所示。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
調用Environment.getExternalStorageDirectory()
並不能保證extеrnal存儲在SD卡的方式,但字是外部參照“外部應用程序”。 在大多數情況下,該路徑將為您提供: /storage/emulated/0/
。
由於指向不是設備組成部分的任何“驅動器”的路徑可以具有不同的名稱,因此,無論設備如何,都需要使用其他方法來查找它。 IMO,最有效和安全的方法是使用某些條件查詢MediaStore
。
快速解決方案可能是使用getExternalFilesDirs()
巫婆為您提供Files[]
,其中您的應用程序包含“其”目錄。 該陣列的第二個元素是SDCard上的路徑。 如果從那里向上兩個“級別”( .getParentFile()
), .getParentFile()
獲得對“根” SDCard目錄的引用。
當然,正如已經提到的,請確實廣泛使用調試來弄清哪里出錯了。
測試此代碼:
String fileName = "myImage.jpg";
String imagePath = Environment.getExternalStorageDirectory() + "/" + fileName;
File file = new File(imagePath);
Uri imageUri = Uri.fromFile(file);
Glide.with(this)
.load(imageUri)
.into(imgView);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.