android - ListFragment的onCreateView(),如何强制调用?

标签 android

我正在使用 android 示例应用程序 FragmentPagerSupport.java 来实现页面之间的幻灯片效果。每个页面都包含一个由线程加载的 HTTP 图像。我的 fragment 的 onCreateView() 正在为图像做加载工作。现在我的问题是,我不知道如何将加载的图像位图绘制到在 onCreateView 中创建的 ImageView 上,有什么想法可以强制调用 Fragment 的 onCreateView 吗?

       @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
        View tv = v.findViewById(R.id.text);
        ((TextView)tv).setText("第 #" + mNum + " 篇");
        ImageView iv = (ImageView)v.findViewById(R.id.imageView);
        final String pic = FragmentPagerSupport.items.get(mNum).thumb;
        Log.e("tag ", "on create view on");
        MyItem mi = FragmentPagerSupport.items.get(mNum);
        if (mi.bm != null) {
            Log.e("tag", "setbitmap for " + mNum);
            iv.setImageBitmap(mi.bm);
        } else {
            new Thread(new Runnable() {
                public void run() {
                    int m = mNum;
                    final Bitmap bm = loadBitmap(pic);
                    MyItem mi = FragmentPagerSupport.items.get(m);
                    mi.bm = bm;                 
                    Log.e("tab", "finishing load bitmap for " + m);
                    // here I want the bitmap can be drawn to the ImageView which is inside the fragment.
                }
            }).start();
        }

        return v;
    }

最佳答案

您可以使用这个 AsyncTask 类:

public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;

public DownloadImageTask(ImageView bmImage) {
    this.bmImage = bmImage;
}

protected Bitmap doInBackground(Strings... args) {
    Bitmap mIcon11 = null;
                int m = Integer.parse(args[0]);
                String pic = args[1];
    try {
                final Bitmap bm = loadBitmap(pic);
                MyItem mi = FragmentPagerSupport.items.get(m);
                mi.bm = bm;                 
                Log.e("tab", "finishing load bitmap for " + m);
    } catch (Exception e) {
        Log.e("Error", e.getMessage());
        e.printStackTrace();
    }
    return mIcon11;
}

protected void onPostExecute(Bitmap result) {
    bmImage.setImageBitmap(result);
}
}

并用作:

new DownloadImageTask(iv).execute(mNum.toString(),pic);

关于android - ListFragment的onCreateView(),如何强制调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383162/

相关文章:

java - 图像使应用程序崩溃

android - displayImage 和 loadImage 缓存的不是同一个文件?

android - 如何使用 Gson 将 JSON 对象解析为自定义对象?

android - 如何使用 PhoneGap Build 获取设备区域设置或语言?

服务问题中的 Android 线程

android - 在 Android 手机中存储这个小型只读数据表的最佳方法是什么?

Android构建成功但无法解析R

android - 在选择器 xml 中使用颜色

android - 创建菜单列表

android - 为什么带线程的倒计时计数器显示错误的值?