热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

来自SD卡的照片显示为位图ID代码-PhotosfromSDCardshowingupasBitmapidcode

Ihavecodethatseemstodotwothings:pullphotosfromanSDcarddirectory,andaddplaceholder

I have code that seems to do two things: pull photos from an SD card directory, and add "placeholder" photos from a drawable resource to fill up a GridView. However, I only see what appears to be the Bitmap object hashcode (if that is the right term) for both operations. Any idea how to get the images to show instead?

我的代码似乎做了两件事:从SD卡目录中提取照片,并从可绘制资源中添加“占位符”照片以填充GridView。但是,我只看到两个操作的Bitmap对象哈希码(如果这是正确的术语)。知道如何让图像显示出来吗?

enter image description here

PhotoTab.java

package org.azurespot.cutecollection;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.GridView;

import org.azurespot.R;

import java.io.File;
import java.util.ArrayList;

/**
 * Created by mizu on 2/8/15.
 */
public class PhotoTab extends Fragment{

    private GridView gridView;
    File[] files;
    ArrayList photoList = new ArrayList<>();
    ArrayAdapter adapter;

    public PhotoTab(){
        super();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.photo_tab, container, false);

        adapter = new ArrayAdapter<>(getActivity(),
                android.R.layout.simple_list_item_1, photoList);

        // with fragments, make sure you include the rootView when finding id
        gridView = (GridView) v.findViewById(R.id.photo_grid);

        // Set the Adapter to GridView
        gridView.setAdapter(adapter);

        // read contents of SD card
        loadSDCard();

        // add the default icons remaining, to GridView, if less than 24 files on SD card
        for (int i = 0; i <(24 - photoList.size()); i++) {

            adapter.add(BitmapFactory.decodeResource(getResources(), R.drawable.ic_photo_placeholder));
            adapter.notifyDataSetChanged();
            i++;
        }

        return v;
    }

    private void loadSDCard(){

        try {
            // gets directory CutePhotos from sd card
            File baseDir = Environment.getExternalStorageDirectory();
            File cutePhotoDir = new File(baseDir, "/Documents/CutePhotos");
            // lists all files in CutePhotos, loads in Files[] array
            files = cutePhotoDir.listFiles();


            for (File singleFile : files) {
                String filePath = singleFile.getAbsolutePath();
                Bitmap bitmap = BitmapFactory.decodeFile(filePath);
                photoList.add(bitmap);

            }

            adapter.addAll(photoList);
            adapter.notifyDataSetChanged();
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}

1 个解决方案

#1


0  

the layout you are using as row android.R.layout.simple_list_item_1, contains a TextView, and the ArrayAdapter is simply calling toString(), and the items of your dataset assigning the returned value to this TextView. To fix it, you have to subclass ArrayAdapter or BaseAdapter and override getView, to customize the aspect of your GridView's items

你正在使用的行布局android.R.layout.simple_list_item_1,包含一个TextView,而ArrayAdapter只是调用toString(),数据集的项目将返回的值分配给这个TextView。要修复它,您必须继承ArrayAdapter或BaseAdapter并覆盖getView,以自定义GridView项目的方面


推荐阅读
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
author-avatar
docetaxel
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有