【问题标题】:Android Gridview is not showing images from assets folderAndroid Gridview 不显示资产文件夹中的图像
【发布时间】:2014-09-07 10:08:05
【问题描述】:

我有一个具体问题尚未在 stackoverflow 上得到解答;我在资产文件夹中有图像,编号为 0.jpg、1.jpg、2.jpg 等。使用 for 循环我从资产文件夹中选择了三个图像,我试图将这些图像添加到 gridview 但图像不是显示。活动开始正常,只是没有图像!

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        gridView = (GridView) findViewById(R.id.gridview_result);

        // Sets the Tag
        gridView.setTag(GRIDVIEW_TAG);

        /*
         * Adapt the image for the GridView format
         */
        imageAdapter = new ImageGridViewAdapter(getApplicationContext());
        gridView.setAdapter(imageAdapter);

        // Set the orientation to landscape
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        // Retrieve 3 images form the database which appear
        // similar
        for (int i = 0; i < 3; i++) {
            // System.out.println(Retrieval.distances[i][0]);
            image = Retrieval.distances[i][0];
            int num = (int) image;
            StringBuilder sBuilder = new StringBuilder();
            sBuilder.append(num);
            String imageNum = sBuilder.toString();
            System.out.println(imageNum);

            String file = imageNum + ".jpg";

            try {
                // get input stream
                InputStream ims = getAssets().open(file);
                Log.i("ERROR_IMS", ims + "");
                // load image as Drawable
                Drawable d = Drawable.createFromStream(ims, file);
                // set image to ImageView
                gridView.setBackground(d);
                Log.i("ERROR_d", d + "");
                Log.i("ERROR_gridview", gridView+"");
            } catch (IOException ex) {
                Log.e("I/O ERROR", "Failed when ...");
            }
        }
    }

我相信问题出现在 try/catch 中。任何帮助将不胜感激!

【问题讨论】:

    标签: java android gridview for-loop assets


    【解决方案1】:

    您应该首先获取所有图像并将其设置到您的适配器。 // 将图像设置为 ImageView gridView.setBackground(d); 不会影响您的网格项目视图。

    一个很好的教程:guide

    【讨论】:

    • 我已经搜索了这个资源几次,但我仍然无法解决问题,你能提供一些代码来指引我正确的方向吗?
    • 你能把完整的源代码发给我吗?我会帮你的。谢谢!
    • 我实际上克服了这一点并设法让它工作,但我被困在一个简单的 for 循环中。如果你能解决这个问题,这里是那个问题的链接stackoverflow.com/questions/25714467/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2021-08-13
    • 2021-10-15
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    相关资源
    最近更新 更多