如何将大量可绘制图像加载到片段ListView中?

时间:2016-01-10 10:03:34

标签: java android listview android-fragments

我正在为一本书开发一个应用程序,它有13个单元,每个单元包含许多练习,每个练习包含许多扫描图像(总共450个图像)。

现在我有一个主菜单活动和2个片段,fragmentA用于显示ListViewfragmentB中的练习,用于显示练习的扫描图像。

我的主菜单活动包含13个按钮,每个按钮用于加载该单元的练习。

我已经为每个单元分别创建了练习字符串ArrayLists,以便在用户点按特定单元时将其加载到fragmentA

1)现在如何在fragmentB的{​​{1}}中加载图片? ListView,或者我应该在主菜单课程中创建TypedArrays(所有单元的每次练习都是1 integerArrays)?

当我在arraylist的{​​{1}}中将OnItemClick设置为ListView时,它会将相同的操作分配给所有13个ArrayList的列表视图项,即如果我分配了如果要运行单元1中的1个图像,它会将该图像分配给所有单位的练习1。

2)如何分别对所有单位的所有练习实施oncreateview

1 个答案:

答案 0 :(得分:0)

开发前应考虑的一些事项:

  1. 在应用程序中放置450张图像会导致应用程序的大小。请注意,Google Play上.apk文件的大小限制为100MB
  2. 在UI上显示如此大规模的图像会占用大量处理能力,并可能导致ANR。您需要异步加载UI上的图像。
  3.   

    如何在ListView中的fragmentB中加载图像

    您可以在FragmentB

    中使用ListFragment

    要根据练习显示不同的内容,请将点击的项目的位置从FragmentA传递到FragmentB,并根据该位置,在UI上设置ArrayList中的以下项目。

    在片段中发送参数的方法。

    Bundle bundle=new Bundle();
    bundle.putString("position", "0");
    FragmentB fragmentB=new FragmentB();
    fragmentB.setArguments(bundle);
    

    <强>更新

    您需要创建模型类来保存内容,例如

    <强> Unit.java

    public class Unit {
        public int unit;
        public ArrayList<Exercise> exercises;
    }
    

    Exercise也是模型类。