Я пытаюсь отобразить различные карты London Tube с помощью приложения для просмотра изображений с камеры мобильного устройства, используя неявное намерение. У меня был tube_map.gif файл изображения в актив папка, но при попытке загрузить этот файл приложение отображает не может найти товар. Я думаю, что путь к файлу, который я указываю, неверен. Я следил за следующим видео. Единственное различие заключается в том, что в видео файл изображения хранится на SD-карте телефона, а в моем случае он хранится в папке с ресурсами. Video can be seen by this link. Мой код выглядит следующим образом:Ошибка Загрузка изображения из папки с активацией через Implicit Intent с помощью средства просмотра изображений телефона
package uk.ac.kingston.mobileTechnology.k1059045.trainCountdown;
import java.io.File;
import uk.ac.kingston.mobileTechnology.k1059045.trainCountdown.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.Toast;
public class ViewTubeMap extends Activity{
String[] maps = {"TUBE","NATIONAL RAIL","OVERGROUND","DLR","TRAMLINK","RIVER BUS","TOURISTS (Tube Map)","TOURISTS (Bus Map)","RAIL CONNECTIONS","TOILET FACILITIES"};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//setContentView(R.layout.tube_map_layout);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a Map");
builder.setItems(maps, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
switch(which){
case(0):
makeToast("Case 0");
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File image = new File("assets/tube_map.gif");
intent.setDataAndType(Uri.fromFile(image), "image/*");
startActivity(intent);
break;
case(1):
makeToast("Case 1");
break;
case(2):
makeToast("Case 2");
break;
case(3):
makeToast("Case 3");
break;
case(4):
makeToast("Case 4");
break;
case(5):
makeToast("Case 5");
break;
case(6):
makeToast("Case 6");
break;
case(7):
makeToast("Case 7");
break;
case(8):
makeToast("Case 8");
break;
case(9):
makeToast("Case 9");
break;
}
}
});
builder.create();
builder.show();
}
public void makeToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
может кто-нибудь, пожалуйста, руководство меня, что случилось с моим кодом или как я могу получить доступ к своему изображению и отобразить его в приложении просмотра изображения с камерой телефона? Спасибо
Я рассмотрел вариант 2: предложенный вами, и это сработало. Но я получаю ошибку при загрузке трех карт, так как их размер составляет 4-5 мб, а приложение отображает ** невозможно загрузить файл **. В моем новом коде я заменил свой код следующим образом: _case (0): Intent tube = new Intent(); \t \t \t \t tube.setAction (android.content.Intent.ACTION_VIEW); \t \t \t \t \t \t \t \t \t \t tube.setDataAndType ( \t \t \t \t \t \t \t Uri.parse ("http://studentnet.kingston.ac.uk/k1059045/app_map_images/tube_map.jpg"), \t \t \t \t \t \t \t "image/*"); \t \t \t \t \t стартАктивность (трубка); \t \t \t \t \t break; _ – user1938645
Можете ли вы направить меня (или любую полезную ссылку), как применить вариант 1: вы предложили, так как это позволит пользователю получать доступ к картам в автономном режиме. скажите, пожалуйста, шаги, которые следует выполнить для сохранения файлов изображений из ** активов ** на ** sd card **. Спасибо – user1938645
, пожалуйста, посмотрите здесь: http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard, однако, если ваши изображения имеют размер 5 МБ (как сжатый JPG) Я думаю, что они будут отображать слишком много памяти. Наверное, это не стоит для трубки. Я бы все равно сохранил их на сервере, но перепробовал до меньшего размера с помощью графического редактора, например gimp или paint.net. – comeGetSome