为了账号安全,请及时绑定邮箱和手机立即绑定

我自己写了一个用listview加载本地内存卡的图片,预期效果是显示所有的本地内存卡的图片,而结果却是在listview中显示几张图片,下面是我写的代码,求指教

我自己写了一个用listview加载本地内存卡的图片,预期效果是显示所有的本地内存卡的图片,而结果却是在listview中显示几张图片,下面是我写的代码,求指教

ArryLuo 2015-12-19 10:19:29
public class MainActivity extends Activity { private ImageView imageView; private ListView listView; List<Bitmap> list = GetBitmap.getbitmap(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listview); new Myasynctak().execute("mnt/sdcard"); } class Myasynctak extends AsyncTask<String, Void, List<ImgBen>> { @Override protected List<ImgBen> doInBackground(String... params) { // TODO Auto-generated method stub return getUrl(params[0]); } @Override protected void onPostExecute(List<ImgBen> result) { // TODO Auto-generated method stub super.onPostExecute(result); MyAdpter adpter=new MyAdpter(MainActivity.this, result); listView.setAdapter(adpter); } } private List<ImgBen> getUrl(String url) { List<ImgBen> list = new ArrayList<ImgBen>(); File file = new File(url); // 判断是否是文件 if (file.exists()) { File[] arry = file.listFiles(); for (int i = 0; i < arry.length; i++) { String name = arry[i].getName();// 获取这个文件的名称 if (name.endsWith(".jpg") || name.endsWith(".png")) { // 获取他的绝对路径 String filepath = arry[i].getAbsolutePath(); ImgBen ben = new ImgBen(filepath); list.add(ben); } } } return list; } }//这个Javabeanpublic class ImgBen {private String url;public ImgBen() { super(); // TODO Auto-generated constructor stub}public ImgBen(String url) { super(); this.url = url;}public String getUrl() { return url;}public void setUrl(String url) { this.url = url;}}//这个是加载图片的异步操作public class LoginThread { ImageView mimageView; Handler mhandler=new Handler(){ public void handleMessage(android.os.Message msg) { mimageView.setImageBitmap((Bitmap) msg.obj); }; }; public void showThread(ImageView imageView, final String url) { mimageView=imageView; new Thread(){ @Override public void run() { // TODO Auto-generated method stub super.run(); Bitmap bitmap=getbitmapImage(url); Message message=new Message(); message.obj=bitmap; mhandler.sendMessage(message); } }.start(); } public Bitmap getbitmapImage(String url){ Bitmap bitmap=null; FileInputStream fis=null; BufferedInputStream bis=null; try { fis=new FileInputStream(url); bis=new BufferedInputStream(fis); bitmap=BitmapFactory.decodeStream(bis); return bitmap; } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ try { bis.close(); fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; }}//这个是我适配器public class MyAdpter extends BaseAdapter { private LayoutInflater inflater; private List<ImgBen>list; public MyAdpter(Context context,List<ImgBen>list) { inflater = LayoutInflater.from(context); this.list=list; } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return list.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.item, null); ImgBen bitmap=list.get(position); ImageView imageView= (ImageView) view.findViewById(R.id.image); new LoginThread().showThread(imageView, bitmap.getUrl()); return view; }}
查看完整描述

2 回答

已采纳
?
Hello橙子

TA贡献13条经验 获得超0个赞

你看看你在获取所有图片路径的时候是不是遍历了根目录所有的文件夹和子文件夹。getUrl(String url)就是这个方法。

查看完整回答
反对 回复 2015-12-20
?
ArryLuo

TA贡献3条经验 获得超2个赞

在MainActivity中的List<Bitmap> list = GetBitmap.getbitmap();是没用的,刚刚提交的时候忘了把他注释掉

查看完整回答
反对 回复 2015-12-19
  • 2 回答
  • 0 关注
  • 1646 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信