Galeride açılacak bir ImageView ayarlanmış ve tıklatılabilen bir uygulamam var. Varsayılan olarakDahili bellekte saklanan görüntüleri paylaşma
, benim jpegler saklamak için harici depolama alanındaki bir dosya dizini almak için aşağıdaki kodu kullanın:
File picsDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"MyCameraApp");
Ama! Harici depolama biriminin monte edilmediğini veya mevcut olmadığını (Galaxy Nexus) varsayalım, bu işe yaramıyor. Bu yüzden etrafında bir if-cümlesi yazdım ve dahili önbellek dirseği geri dönüş olarak aldım.
String state = Environment.getExternalStorageState()
if(Environment.MEDIA_MOUNTED.equals(state)){
File picsDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"MyCameraApp");
}else{
context.getCacheDir();
}
Resimler, ImageView öğesinde düzgün görünüyor, ancak amacım başlatıldığında ortaya çıkmıyor.
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(imgFile), "image/jpeg");
startActivity(intent);
Galeri yüklenir, ancak siyah bir ekran gösterir. Muhtemelen galeri uygulamanızın önbellek dizinindeki dosyalara erişemediği için. Bir alternatif olarak
, benMediaStore.Images.Media.INTERNAL_CONTENT_URI
kullanan medya içeriği sağlayıcısı kullanarak çalıştı, ancak inser görüntüyü çalışırken bu hataya yol açar:
java.lang.UnsupportedOperationException: Writing to internal storage is not supported.
ne yapmalıyım?
ben niyet ile birlikte bitmap ambalaj deneyebilirsiniz tam olarak sorununuzu çözdü bu şekilde kodunu değiştirebilir? Intent.putExtra ("BitmapImage", bitmap); gibi. Resimlerim genellikle yaklaşık 5 MB. – Maarten
Görüntüleri uygulamanın özel deposunda saklayabilir ve genel olarak bunlara HAZIR OKUYUNUZ. Ancak, google yerleşiklerinin bir kısmı da dahil olmak üzere birçok uygulama bunlara bir yol verildiğinde bunlara erişip erişemeyeceğini kontrol etmekten rahatsız olmaz, ancak Sahip olma başvurusu aslında küresel okuma erişimi sağlasa bile, başaramayacaklarını ve başarısız olduklarını varsayalım. –