当前位置: 代码迷 >> Android >> Android:漫画APP开发札记之从Assets本地读取图片
  详细解决方案

Android:漫画APP开发札记之从Assets本地读取图片

热度:75   发布时间:2016-04-28 02:19:45.0
Android:漫画APP开发笔记之从Assets本地读取图片

list为Assets下目录名

//本地读取	 private ArrayList<PicListInfo> getImageFromAssetsFile(String list)  	  {  		 String test=list;		 ArrayList<PicListInfo> newpiclistinfo = new ArrayList<PicListInfo>();		 String[] list_image = null; 		 try { 		 //得到assets/list/目录下的所有文件的文件名,以便后面打开操作时使用 		     list_image = this.getAssets().list(list); 		 } catch (IOException e1) { 		     // TODO Auto-generated catch block 		     e1.printStackTrace(); 		 } 		 for(int i=0;i<list_image.length;++i) 		 { 		     InputStream open = null; 		     try { 		   String temp = list+"/"+list_image[i]; 		   open = this.getAssets().open(temp); 		   Bitmap bitmap = BitmapFactory.decodeStream(open);		   PicListInfo pi = new PicListInfo();           pi.setPicUrl(bitmap);           newpiclistinfo.add(0,pi);		   // Assign the bitmap to an ImageView in this layout 		     } catch (IOException e) { 		   e.printStackTrace(); 		       } finally { 		   if (open != null) { 		     try { 		       open.close(); 		     } catch (IOException e) { 		       e.printStackTrace(); 		     } 		   } 		        } 		 }		 Collections.reverse(newpiclistinfo);		 piclistinfo.addAll(newpiclistinfo);		 sla.notifyDataSetChanged();		return piclistinfo;		  }  
PicListAdapter.java

package com.cartoon.adapters;import java.util.ArrayList;import com.cartoon.R;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.View.MeasureSpec;import android.view.ViewGroup;import android.view.ViewGroup.MarginLayoutParams;import android.view.WindowManager;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.TextView;public class PicListAdapter extends ArrayAdapter<PicListInfo>{		public PicListAdapter(Context context, int textViewResourceId, ArrayList<PicListInfo> objects)	{		super(context, textViewResourceId, objects);	}	@Override	public View getView(int position, View convertView, ViewGroup parent) {		ViewHolder holder =null;		View view;		WindowManager wm = (WindowManager) getContext()                .getSystemService(Context.WINDOW_SERVICE);        int width = wm.getDefaultDisplay().getWidth();        int height = wm.getDefaultDisplay().getHeight();		if (convertView == null) {			view = LayoutInflater.from(getContext()).inflate(R.layout.piclist_item, null);						holder = new ViewHolder();			holder.piclist_item = (ImageView)view.findViewById(R.id.piclist_item);     	        //设置图片的位置	      			ViewGroup.LayoutParams margin = new ViewGroup.LayoutParams(	        		holder.piclist_item.getLayoutParams());	        RelativeLayout.LayoutParams layoutParams  = new RelativeLayout.LayoutParams(margin);	        layoutParams.height = (int) (width*0.5677);//设置图片的高度	        layoutParams.width = width; //设置图片的宽度	        layoutParams.setMargins(15, 0, 15, 0);	        holder.piclist_item.setLayoutParams(layoutParams);	        holder.piclist_item.setScaleType(ImageView.ScaleType.FIT_START);	        view.setTag(holder);		} else {			view = convertView;			holder = (ViewHolder)convertView.getTag();		}		        final PicListInfo singleoder = getItem(position);        if (singleoder != null) {			holder.piclist_item.setImageBitmap(singleoder.getPicUrl());        }		return view;	}	public class ViewHolder{		public ImageView piclist_item;	}}

PicListInfo.java

package com.cartoon.adapters;import android.graphics.Bitmap;public class PicListInfo {	private Bitmap PicUrl;   //图片地址	//下面是上面属性的get和set方法	public Bitmap getPicUrl() {		return PicUrl;	}	public void setPicUrl(Bitmap picUrl) {		PicUrl = picUrl;	}	}



  相关解决方案