gpt4 book ai didi

java - ViewPager通用图像加载器如何实现

转载 作者:行者123 更新时间:2023-12-01 05:00:26 24 4
gpt4 key购买 nike

对我来说已经快两个月了,尤其是用java,android编码。我遇到了一个问题,我已经挣扎了两天多了。

基本上,我有一个充满字符串(url)的数据库。我正在尝试构建一个应用程序,将选定的(通过我的查询)Url 传递到通用图像加载器中,并最终获得一个包含从 UIL 下载的所有图像的 Viewpager。

我已经构建了自己的适配器(以便将其用于 ViewPager),但我不知道如何使用通用图像加载器并创建该 ViewPager。

这是我的代码:MenuImages.java

public class Menu_images extends Activity {


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_gallery);

Bundle map = getIntent().getExtras();
String rest_name=map.getString("key");
String area=map.getString("key2");

loadGalleryImages(rest_name, area);


}

private void loadGalleryImages(String rest_name, String area) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
List<String> images_url = db.getImagesUrl(rest_name, area);

MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);

myPager.setAdapter(adapter);
myPager.setCurrentItem(0);

}

MyPagerAdapter.java

public class MyPagerAdapter extends PagerAdapter {

Context context;


private Integer[] Imgid = {
R.drawable.gallery_photo_1, R.drawable.gallery_photo_3, R.drawable.gallery_photo_1
};

public MyPagerAdapter(List<String> images_url) {
// TODO Auto-generated constructor stub
}
public int getCount() {
return Imgid.length;
}

public Object instantiateItem(View collection, int position) {


ImageView img = new ImageView(collection.getContext());


int resId = 0;
switch (position) {
case 0:
resId = Imgid[0];
break;
case 1:
resId = Imgid[1];
break;
case 2:
resId = Imgid[2];
break;
}

img.setImageResource(resId);
((ViewPager) collection).addView(img, 0);
return img;
}
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
public Parcelable saveState() {
return null;
}

}

DataBaseHandler.java

public List<String> getImagesUrl(String rest_name, String area) {
List<String> images_url = new ArrayList<String>();

// Select All Query
String selectQuery = "a query goes here";


SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);





// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
images_url.add(cursor.getString(cursor.getColumnIndex("_images")));
} while (cursor.moveToNext());
}

// closing connection
cursor.close();
db.close();

return images_url;
}

如您所见,我从 DataBaseHandler 获取包含所有字符串(url)的列表。实际上,我需要从 MyPagerAdapter 中删除数组 Interger[],并将其动态替换为从 DataBaseHandler 中检索到的列表(带有 URL 的列表)。

总而言之,我试图让通用图像加载器使用我传递给它的所有 URL,并用这些 URL 创建一个 viewpager。

如果你能帮我解决这个问题,我将永远感激不已,因为我开始抓狂了。我在这部分花了很多天,搜索了几个小时,但没有找到适合我的东西。

提前致谢,抱歉啰嗦了,哈里斯。

最佳答案

这是一个完美的example为你。下载右上角的源代码,并运行应用程序。你可以研究一下源代码,它有你需要的一切。有点超前了,别 panic 。如果您有任何问题,请留言。

关于java - ViewPager通用图像加载器如何实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13465404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com