Я использую пример this, чтобы получить путь к изображению. Каждая вещь в порядке, когда я получаю небольшой путь к изображению, но когда я хочу получить огромный путь к изображению, мое приложение разбивается. Я не знаю, почему это происходит, потому что я не использую ImageView для отображения изображения с выбранного пути.Android get image path
Мой код находится здесь, чтобы открыть галерею и выберите изображение:
selectImgBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 0);
//urlTV.setText(getMainPath());
}
});
И второе, чтобы показать путь:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && data != null){
String realPath;
if (Build.VERSION.SDK_INT < 19){
realPath = RealPathUtil.getRealPathFromURI_API11to18(this, data.getData());
} else {
realPath = RealPathUtil.getRealPathFromURI_API19(this, data.getData());
}
setMainPath(realPath);
/*setFile(realPath);
setToTextViews(Build.VERSION.SDK_INT, data.getData().getPath(), realPath);*/
urlTV.setText(getMainPath());
}
}
Спасибо!
-
Вызванный: java.lang.IllegalArgumentException: Не документ: Содержание: // СМИ/внешние/изображения/СМИ/32257 в android.provider.DocumentsContract.getDocumentId (DocumentsContract.java:629) на com.example.murager.httpclientapp.classes.RealPathUtil.getRealPathFromURI_API19 (RealPathUtil.java:19) на com.example.murager.httpclientapp.activities.MainActivity.onActivityResult (MainActivity.java:98) в android.app .Activity.dispatchActivityResult (Activity.java:5456) at android.app.ActivityThread.deliverResults (ActivityThread.java:3549) at android.app.ActivityThread.handleSendResult (ActivityThread.java:3596) at android.app.ActivityThread.access $ 1300 (ActivityThread.java:151) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1369) на android.os.Handler.dispatchMessage (Handler.java:110) на android.os.Looper.loop (Looper.java:193) на android.app.ActivityThread.main (ActivityThread.java:5292) в java.lang.reflect.Method.invokeNative (собственный метод) по адресу java.lang.reflect.Method.invoke (Method.java:515) at com.android.internal.os. ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:824) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:640) на dalvik.system.NativeStart.main (Native Method)
[Это] [1] решить мою проблему с файла выбрать в KitKat. [1]: http://stackoverflow.com/a/20559175/5134148 – zxc123qwe098qqq
вы должны проверить эту хорошую библиотеку, https://github.com/coomar2841/image-chooser-library –
Нет, Я не проверяю эту библиотеку, но я буду использовать ее. Благодаря!!! – zxc123qwe098qqq