1

Android 2.x 専用の画像ビューアー アプリを作成する必要があります。

jpeg 画像ファイルが多すぎます: 約 2000~ jpeg、100MB 以上。

ファイル名で画像ファイルにアクセスしたいのですが、そのような例が見つかりませんでした。

ところで、/res/drawable フォルダに画像ファイルをたくさん入れても大丈夫ですか?

Androidアプリはsdcardにインストールできないと聞いて、

プログラム リポジトリは非常に小さいため、100 MB のアプリは通常インストールできません。

SDカードの大きなデータファイルをオンラインでダウンロードする例をいくつか見つけました。

しかし、データ ファイルをホストする Web サーバーを実行することはできません。

完全にパッケージ化されたプログラムを Android マーケットにアップロードする必要があります。(1 つの apk ファイルをビルドする必要がありますか?)

Android であまりにも多くのリソース イメージ (または何か) を管理するためのベスト プラクティスは何ですか?

4

5 に答える 5

2

G1 には、アプリケーション用に 256 MB の内部ストレージがあります。Nexus One でさえ 512MB しかないので、単一のアプリケーションがこのストレージの大部分を占有することを望んでいる人はまずいないと思います。

ストック Android 携帯電話が SD カードからアプリケーションを実行できないことは正しいです。(これを可能にするカスタムファームウェアがありますが、これらを実行するユーザーはごく少数であるため、これは役に立ちません。)

あなたはウェブサーバーを実行できないと言っていますが、残念ながら、それが唯一の現実的な選択肢だと思います。必要に応じて画像をダウンロードし、ウェブサーバーのどこかにある場合は SD カードにキャッシュすることができます。画像全体を提供するように Web サーバーを構成するのは非常に簡単ですが、課金している場合は、アプリではなく Web ブラウザーを使用して画像が表示されないようにするための作業が必要になる場合があります。

于 2010-02-12T06:48:40.467 に答える
2

ユーザーに 100 MB のプログラムを携帯電話の内部メモリにインストールするよう説得するのは難しいと思います。画像を SD カードにサイドロードする方がはるかに優れています。Amazon S3 など、かなり安価なファイル ホスティング サービスが多数あります。

また、ユーザーが 1 つの大きなチャンクではなく小さなグループでイメージをダウンロードできるようにすることを検討する必要があります。

于 2010-02-12T01:48:48.903 に答える
1
ImageView iv = new ImageView(context);

iv.setImageResource(R.drawable.icon);
于 2010-09-24T06:19:06.387 に答える
0

SD カードのディレクトリにある大量の画像にアクセスするには:

ImageView iv= ...
    int imageIndex=0; //can access all image files by imageIndex, 0=first entry

    List<String> ImageList=FindImages();
    if(ImageList!=null && ImageList.size()>=currentIndex){
         iv.setImageDrawable(Drawable.createFromPath(ImageList.get(imageIndex)));
    }

    //put your image files on SD in DIRECTORY


    private List<String> FindImages() {
    final List<String> tFileList = new ArrayList<String>();
    Resources resources = getResources();
    // may use array of valid image file extensions
    //String[] imageTypes = ...
    FilenameFilter[] filter = new FilenameFilter[imageTypes.length];

    int i = 0;
    /* can use string array of image types:
               for (final String type : imageTypes) {
        filter[i] = new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return name.endsWith("." + type);
            }
        };
        i++;
    }*/
    filter[i] = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.endsWith(".png");
        }
    };
    FileUtils fileUtils = new FileUtils();
    File[] allMatchingFiles = fileUtils.listFilesAsArray(
            new File(DIRECTORY), filter, -1);
    for (File f : allMatchingFiles) {
        tFileList.add(f.getAbsolutePath());
    }
    return tFileList;
}
于 2011-05-11T14:19:50.370 に答える
0

自分で試したことはありませんが、これはうまくいくようです:

public BitmapDrawable(Resources res, String filepath);

https://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html#BitmapDrawable%28android.content.res.Resources,%20java.lang.String%29

于 2010-02-12T00:06:37.580 に答える