【问题标题】:Universal Image Loader ViewPager how to implementUniversal Image Loader ViewPager如何实现
【发布时间】:2012-11-08 01:26:08
【问题描述】:

我已经快 2 个月了,尤其是在 java 中编码,尤其是在 android 中。 我遇到了一个问题,我已经苦苦挣扎了两天多。

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

我已经构建了自己的适配器(以便将其用于 ViewPager),但我不知道如何使用 Universal Image Loader 并创建 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 的列表)。

总而言之,我试图让 Universal Image Loader 使用我传递给它的所有 URL 并使用这些 URL 创建一个 viewpager。

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

在此先感谢,很抱歉说了这么多, 哈里斯。

【问题讨论】:

  • 这里是您的完美example。下载右上角的源代码,然后运行应用程序。你可以研究源代码,它有你需要的一切。有点超前了,别着急。如果您有任何问题,请发布。
  • 让我测试一下,然后在这里报告。
  • 通过测试链接中的源代码,这一定正是我想要的。不过,我将如何在我当前的项目中实现它?
  • 演示代码在apache许可下,你可以复制你需要的部分源代码,例如处理加载和显示图像的部分。
  • 我想我终于找到了实现它的方法。请写下您的第一条评论作为答案,以便我接受。

标签: java android imageview android-viewpager universal-image-loader


【解决方案1】:

这是适合您的完美example。下载右上角的源代码,然后运行应用程序。你可以研究源代码,它有你需要的一切。有点超前了,别着急。如果您有任何问题,请发布。

【讨论】:

  • 此示例适用于 4.1 android。你能告诉我如何为较低的api级别实现它吗?谢谢。
  • 你在说什么 API 级别?它应该可以一直工作到 2.2。
  • 好吧,显然不是。当我将 API 级别从 4.1 更改为 2.3.3 时,某些方法不起作用。它甚至没有达到某些 id(例如 R.id.something)或某些常量。以 SYSTEM_UI_FLAG_LOW_PROFILE 为例。无法导入 import android.app.ActivityOptions;这是所需的进口之一:S等......有什么想法吗?
  • 你能从演示代码中发布你正在使用的类吗? SYSTEM_UI_FLAG_LOW_PROFILE是用来隐藏状态栏的,在HCM之前是不需要的,所以请贴出问题的代码,让我看看。
  • 我已将 Bitmapfun apk 加载到我的 android 手机中,它工作正常。这意味着错误位于我的代码的实现和 bitmapfun 代码之间。是否可以编写一个按钮侦听器,当单击该按钮时,会加载 bitmapfun 项目?感谢您花时间帮助我交配。
猜你喜欢
  • 2015-02-09
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 2012-11-01
  • 1970-01-01
相关资源
最近更新 更多