Android: кликабельная ссылка на хранилище SD-карты

Я хочу отображать ссылки, которые имеют такой формат, как /sdcard/Pictures/ и т. д., в текстовом виде как интерактивная ссылка с выделением и подчеркиванием. Я часто использую Linkify для отображаемых ссылок, однако это не поддерживает ссылки для хранения (только Интернет, электронная почта и т. д.). Есть ли какой-нибудь способ для этого?


person EternaLCompleX    schedule 30.10.2015    source источник


Ответы (1)


Я бы рекомендовал отображать изображение в ImageView в Activity.

Вы можете поместить логику в свой onClick(View v), чтобы открыть содержимое TextView в новом действии:

@Override
public void onClick(View v) {
    Intent intent = new Intent(context, ShowImageActivity.class);
    intent.putExtra("imageLocation", v.getText());
    context.startActivity(intent);
}

Затем в вашем ShowImageActivity onCreate() :

    ImageView jpgView = (ImageView)findViewById(R.id.imageView);
    Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/sample-1.jpg");
    jpgView.setImageBitmap(bitmap);
    setContentView(R.layout.main);

https://stackoverflow.com/a/9509948/5486718

Если вам нужно, вы можете добавить собственное намерение в linkify:

String newActivityURL = "content://com.example.yourapp.yourtargetactivity/";
Pattern pattern = Pattern.compile("[/sdcard/]+[[a-f][0-9]]+[.jpg]");
Linkify.addLinks(hashView, pattern, newActivityURL);
person Hugh    schedule 30.10.2015
comment
На самом деле мне не нужно отображать изображение человека. Я знаю, как открывать файлы на SD-карте и отображать их. Однако это не то, что мне нужно. Мне нужно сделать ссылку в текстовом виде кликабельной (когда вы щелкнете по ней, появится браузер с каталогом). Однако Linkify может позволить мне сделать это с URL-адресом, а не с каталогом SD-карты. И в этом проблема. - person EternaLCompleX; 30.10.2015