1

私がやろうとしているのは、Web から画像をダウンロードし (それが何かを変更する場合は GIF 形式で)、ズーム/パン機能を使用して画面に表示することです。画像を Bitmap インスタンスmyBitmapに正常にダウンロードしましたが、ImageView にはズーム機能がありません。代わりに、ズーム/パン機能を備えたデフォルトのビューアーを提示したいと思います。インテントを設定するには、保存したファイルへの URI を提供する必要があります。最初にファイルを内部ストレージに保存します (MODE_WORLD_READABLE で他のアプリへのアクセスも許可します):

    try {
        FileOutputStream out = openFileOutput("scrible",
                Context.MODE_WORLD_READABLE);
        myBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
    } catch (FileNotFoundException e) {
        Log.d(myTag, e.toString());
    }

次に、本当に読みやすいことを確認しました。

    File myFile = new File(getFilesDir(), "scrible");
    if (myFile.canRead()) {
        Log.d(myTag, "Its readable");
    }

次に、意図を設定しようとします (エラーが発生します: 予期せず停止しました):

    Uri fileUri = Uri.fromFile(myFile);
    startActivity(new Intent(Intent.ACTION_VIEW, fileUri));

インテントを個別に設定しようとしましたが、startActivity(intent);を呼び出すまでエラーは発生しません。

私が間違っていることは何ですか?

4

1 に答える 1

3

以下は私にとってはうまくいきます:

Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(outputFileName)),"image/jpeg");
startActivity(intent);

私が見る違いは、setDataAndType.

于 2011-06-08T17:02:59.900 に答える