sqlite 데이터베이스에서 그림 이름을 추출한 다음 그 그림 이름을 사용하여 드로어 블 폴더에서 특정 그림을 찾고 내 앱의 갤러리 위젯에 표시하여 그림을 표시하려고합니다. . 그것은 작동하지만 이제는 문제가 너무 많아서 드로어 블 폴더에 모든 것을 저장하는 것이 의미가 없으므로 앱을 너무 크게 만들 수 있습니다. 나는 그림을 온라인으로 배치하고 개별 URL을 sqlite 데이터베이스에 저장하려고 생각하고있다. 이 방법으로 데이터베이스에서 URL을 가져올 수 있으며 해당 URL을 사용하여 이미지를 다운로드하여 갤러리 위젯에 표시 할 수 있습니다. 나는 Lazy List (훌륭한 일에 대한 명성!)에 대해 읽었지 만, 내 앱에서 구현하는 데 문제가있다. 아래는 현재 갤러리에서 사용하고있는 코드이며 Lazy List를 사용하여 온라인에서 이미지를 다운로드하는 방법을 잘 모르겠습니다. 어떤 도움이라도 대단히 감사합니다! =)갤러리에서 게으른 목록 사용
protected String pic1, pic2, pic3;
protected int Id, resID1, resID2, resID3;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result_details);
Id = getIntent().getIntExtra("ID", 0);
SQLiteDatabase db = (new DatabaseHelper(this)).getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT pic1, pic2, pic3 FROM database WHERE _id = ?",
new String[]{""+Id});
pic1 = cursor.getString(cursor.getColumnIndex("pic1"));
pic2 = cursor.getString(cursor.getColumnIndex("pic2"));
pic3 = cursor.getString(cursor.getColumnIndex("pic3"));
resID1 = getResources().getIdentifier(pic1 , "drawable", getPackageName());
resID2 = getResources().getIdentifier(pic2 , "drawable", getPackageName());
resID3 = getResources().getIdentifier(pic3 , "drawable", getPackageName());
Gallery g = (Gallery) findViewById(R.id.photobar);
g.setAdapter(new ImageAdapter(this));
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private Integer[] mImageIds = {
resID1,
resID2,
resID3
};
public ImageAdapter(Context c) {
mContext = c;
TypedArray a = obtainStyledAttributes(R.styleable.Theme);
mGalleryItemBackground = a.getResourceId(
R.styleable.Theme_android_galleryItemBackground,
0);
a.recycle();
}
public int getCount() {
return mImageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position,
View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]);
i.setLayoutParams(new Gallery.LayoutParams(150, 100));
i.setScaleType(ImageView.ScaleType.FIT_XY);
return i;
}
}
죄송합니다. 프로그래밍에 익숙하지 않으므로 말씀하신 내용의 예를 들려 줄 수 있습니까? 따라서이 경우 public 뷰 getView (int 위치, 뷰 convertView, 뷰 그룹 부모)를 삽입합니다. { ImageView i = new ImageView (mContext); imageLoader.DisplayImage (pic1, i); i.setImageResource (mImageIds [position]); i.setLayoutParams (새 Gallery.LayoutParams (150, 100)); i.setScaleType (ImageView.ScaleType.FIT_XY); return i; } 그러나 mImageIds의 정수 배열은 어떻습니까? – maxchia