您的位置:首页 > 移动开发

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

2015-02-13 21:03 477 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: