ここのチュートリアルに従いました: http://androidsamples.blogspot.com/2009/06/how-to-display-thumbnails-of-images.html と、ほぼ同じコードを持つ別のチュートリアルもあり、さまざまなデバイスでの画像の処理方法にいくつかの問題/矛盾があります。
画像を収集するための私のコードは次のとおりです。
private void init_phone_image_grid() {
String[] img = { MediaStore.Images.Thumbnails._ID };
Uri uri = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
imagecursor = managedQuery(uri, img, null,
null, MediaStore.Images.Thumbnails.IMAGE_ID);
image_column_index = imagecursor
.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
count = imagecursor.getCount();
imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
imagegrid.setAdapter(new ImageAdapter(getApplicationContext()));
imagegrid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position,
long id) {
System.gc();
String[] proj = { MediaStore.Images.Media.DATA };
actualimagecursor = managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj,
null, null, null);
actual_image_column_index = actualimagecursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
actualimagecursor.moveToPosition(position);
String i = actualimagecursor
.getString(actual_image_column_index);
System.gc();
Intent intent = new Intent(getApplicationContext(),
EvidenceImageView.class);
intent.putExtra("filename", i);
startActivity(intent);
}
});
}
Android 2.2を実行しているエミュレーターがあり、それを使用してマウントするsdcardファイルを作成できました..adbを使用していくつかの画像をフォルダーにコピーし、エミュレーターを再起動しました(最初はアプリに画像が表示されませんでした)..再起動後一部の画像はアプリに表示されましたが、すべてではありませんでした..次に、エミュレーターに付属のギャラリーアプリケーションを開いた後、ギャラリーにすべての画像を正常にロードさせることができました..しかし、私はHTC thunberboltも持っています.そして、私はそれに写真を持っています(/ sdcard/DCIM/100MEDIAの下に)、同じアプリに画像がまったく表示されません(私が取り組んでいるアプリを参照してください)..電話がかかっていませんコンピューターに接続しているので、電話がSDカードにアクセスできることに問題はないことがわかっています..また、私は'携帯電話に付属のギャラリー アプリケーションを試してみたところ、写真/ビデオは問題なく読み込まれました..システムが同じ方法で画像を処理していない場合..
私はAndroid開発にまったく慣れていないので、これがかなり簡単になることを望んでいました.Facebookなどの他のアプリを調べたところ、写真をアップロードしたいときにhtcが提供するギャラリーに直接移動するようです..おそらく、私はこの同じアプローチをとることができます(方法は完全にはわかりません..最終的には、ユーザーが複数の画像を選択してそれらすべてをアップロードできるようにしたいです.Androidに付属のカメラアプリのソースコードも見つけました:
https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera
これはいくらか役に立ちますが、この時点で消化しなければならないかなりの量の情報です。
「これがどのように機能するか」の説明は素晴らしいでしょう。ただし、主なことは、ギャラリーにすべてのサムネイル画像を表示するにはどうすればよいか (必要に応じてサムネイルを作成する)、または、システム ギャラリーとどのようにやり取りできるかということです..