0

暗黙のインテントを使用して、モバイルのカメラ画像ビューアー アプリでさまざまなロンドン チューブ マップを表示しようとしています。アセットフォルダーにtube_map.gif画像ファイルがありましたが、このファイルを読み込もうとすると、アイテムが見つからないと表示されます。指定しているファイル パスが正しくないと思います。私は次のビデオに従っています。唯一の違いは、ビデオでは画像ファイルが電話の SD カードに保存されるのに対し、私の場合はアセット フォルダーに保存されることです。ビデオはこのリンクで見ることができます。私のコードは次のとおりです。

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();
}
}

私のコードの何が問題なのか、または私の画像にアクセスして電話のカメラ画像ビューアプリに表示するにはどうすればよいですか?ありがとう

4

1 に答える 1