こんにちは私はbaseadapterを拡張しているimageadapterを理解するのに少し役立つことができました。私は先月働いていたアプリのホームレスにいて、困惑しています。私のプロジェクトについて少し。それは車両を追跡します。どの車両でも、ユーザーはカメラで多くの写真を撮ることができます。この部分は動作します。私は写真を撮ることができ、それを内部の記憶装置に保存する。私はそのパスをsqliteテーブルに保存します。私のデータベースにはイメージID(_id)があります。 1、車両id(v_id)ex1、画像へのパス(i_image)ex /data/data/com.okc.vinstick/files/img_20120111_090000.jpgなどがある。イメージファイルを確認し、データベースエントリが正しく保存されています。今、難しい部分に:GridViewに画像を表示する。私は従うことをしようとしているImageAdapterの例は、このようなものです:Android ImageAdapter
public class ImageAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public ArrayList<ImageItem> images = new ArrayList<ImageItem>();
public ImageAdapter() {
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public void initialize() {
images.clear();
final String[] columns = { MediaStore.Images.Thumbnails._ID };
final String orderBy = MediaStore.Images.Media._ID;
Cursor imagecursor = null;
try {
ContextWrapper context = MorePhotoTesting.this;
imagecursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, orderBy);
} catch(Exception e) {
e.printStackTrace();
}
if(imagecursor != null){
int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID);
int count = imagecursor.getCount();
for (int i = 0; i < count; i++) {
imagecursor.moveToPosition(i);
int id = imagecursor.getInt(image_column_index);
ImageItem imageItem = new ImageItem();
imageItem.id = id;
lastId = id;
imageItem.img = MediaStore.Images.Thumbnails.getThumbnail(getApplicationContext().getContentResolver(), id,
MediaStore.Images.Thumbnails.MICRO_KIND, null);
images.add(imageItem);
}
imagecursor.close();
}
notifyDataSetChanged();
}
私はかつて私は()()私はgetViewメソッドを打ち出すことができ、初期化を理解すると信じています。明らかに、この例では、アプリケーションの内部ストレージを使用するMediastoreを使用しています。私は失われてしまって、私の研究は空になってしまった。 Mediastoreのものをデータベースコードで置き換える方法はわかりません。誰かが正しい方向に私を指すことができるなら、それは素晴らしいだろう!例では、クラスを使用していますところで:
class ImageItem {
boolean selection;
int id;
Bitmap img;
}
主な活動からの呼び出しはこのような何かを見て:
imageAdapter = new ImageAdapter();
imageAdapter.initialize();
imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
imagegrid.setAdapter(imageAdapter);
を私は謝るが、これは、これらの機能を扱う私の最初のプロジェクトです。
回答ありがとうございます。私はそれが直接的な質問ではないかもしれないが、「誰かが私がやっているべきことを説明することができる」ということのほうが多いことを認識している。私はEXTERNAL_CONTENT_URIにそれを残すとき、私はアンドロイドギャラリーのすべての写真を見ています。 INTERNAL_CONTENT_URIに変更すると何も得られません。誰もそこに起こっていることを説明することはできますか?繰り返しますが、初心者の質問には申し訳ありませんが、勉強に全力を尽くしています! –
私のonActivityResultイメージをキャプチャした後、私はimageUri.getPath()でmediascannerを実行しようとします。アプリケーションディレクトリ内の何かをスキャンしますか?/data/data .... –
私はしばらくの間別の方向に行くことに決めました。ご協力いただきありがとうございます。 –