Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android listview适配器中的java.lang.outofmemoryerror异常_Android_Memory_Bitmap - Fatal编程技术网

Android listview适配器中的java.lang.outofmemoryerror异常

Android listview适配器中的java.lang.outofmemoryerror异常,android,memory,bitmap,Android,Memory,Bitmap,我的listview适配器有问题。下面是适配器的源代码: public class ListItemAdapter extends BaseAdapter { private static ArrayList<ItemDetail_class> DataProcessorResult; private LayoutInflater myInflater; Context mycontext; public ListIt

我的listview适配器有问题。下面是适配器的源代码:

public class ListItemAdapter extends BaseAdapter {
        private static ArrayList<ItemDetail_class> DataProcessorResult;
        private LayoutInflater myInflater;
        Context mycontext;

        public ListItemAdapter(Context context, ArrayList<ItemDetail_class> results) {
            DataProcessorResult = results;
            myInflater = LayoutInflater.from(context);
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return DataProcessorResult.size();      
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return DataProcessorResult.get(position);
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            ViewHolder holder; 
            final Context mycontext=parent.getContext();

            if(convertView == null) {
                convertView = myInflater.inflate(R.layout.custom_view_item, null);
                holder = new ViewHolder();
                holder.tvitemcode = (TextView) convertView.findViewById(R.id.tvitemcode);
                holder.tvitemname = (TextView) convertView.findViewById(R.id.tvitemname);
                holder.tvsize = (TextView) convertView.findViewById(R.id.tvsize);
                holder.tvprice = (TextView) convertView.findViewById(R.id.tvprice);                       
                holder.imgitem= (ImageView) convertView.findViewById(R.id.imgitem); 
                holder.imgview= (ImageView) convertView.findViewById(R.id.imgview); 

                convertView.setTag(holder);            
            }else{
                holder = (ViewHolder) convertView.getTag();
            }

            holder.tvitemcode.setText(DataProcessorResult.get(position).getItemCode());
            holder.tvitemname.setText(DataProcessorResult.get(position).getItemName());
            holder.tvsize.setText(DataProcessorResult.get(position).getSize());
            holder.tvprice.setText(DataProcessorResult.get(position).getPrice());

            holder.tvitemcode.setTextSize(TypedValue.COMPLEX_UNIT_PX, mycontext.getResources().getDimensionPixelSize( R.dimen.lbllistviewitem));
            holder.tvitemname.setTextSize(TypedValue.COMPLEX_UNIT_PX, mycontext.getResources().getDimensionPixelSize( R.dimen.lbllistviewitem));
            holder.tvsize.setTextSize(TypedValue.COMPLEX_UNIT_PX, mycontext.getResources().getDimensionPixelSize( R.dimen.lbllistviewitem));
            holder.tvprice.setTextSize(TypedValue.COMPLEX_UNIT_PX, mycontext.getResources().getDimensionPixelSize( R.dimen.lbllistviewitem));

            String imgName = DataProcessorResult.get(position).getItemCode();
            imgName=(imgName.replace("-",""));
            imgName=imgName.toLowerCase();
            int imgID=0;
            holder.imgitem.getLayoutParams().width= mycontext.getResources().getDimensionPixelSize( R.dimen.photolistviewitem);
            holder.imgitem.getLayoutParams().height= mycontext.getResources().getDimensionPixelSize( R.dimen.photolistviewitem);

            if (mycontext.getResources().getIdentifier(imgName+"_1", "drawable", mycontext.getPackageName())==0)
            {
                String imagepath = Environment.getExternalStorageDirectory() + "/Asiades/"+imgName+".jpg";
                File FileMain = new File(imagepath); 
                if (FileMain.exists()){ 
                    BitmapFactory.Options options = new BitmapFactory.Options();
                    options.inPreferredConfig = Bitmap.Config.ARGB_8888;
                    options.inSampleSize = 8;
                    Bitmap bitmap = BitmapFactory.decodeFile(imagepath, options);        
                    holder.imgitem.setImageBitmap(bitmap);          
                }else{
                    imgID = mycontext.getResources().getIdentifier("blankitem", "drawable", mycontext.getPackageName());
                    holder.imgitem.setImageResource(imgID);
                }                       
            }else {
                imgID = mycontext.getResources().getIdentifier(imgName+"_1", "drawable", mycontext.getPackageName()); 
                holder.imgitem.setImageResource(imgID);         
            }       

            holder.imgview.getLayoutParams().width= mycontext.getResources().getDimensionPixelSize( R.dimen.arrowicon);
            holder.imgview.getLayoutParams().height= mycontext.getResources().getDimensionPixelSize( R.dimen.arrowicon); 

            holder.imgview.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    OtherClass.setItemCode(DataProcessorResult.get(position).getItemCode());
                    Intent MyIntent=new Intent(mycontext, ViewDetailItem.class);                                    
                    mycontext.startActivity(MyIntent);
                }
            });

            if (position % 2 == 1) {convertView.setBackgroundColor(Color.WHITE);} else {convertView.setBackgroundColor(Color.rgb(208,212,208)); }        
            return convertView;
        }

        static class ViewHolder {
            TextView tvitemcode;
            TextView tvitemname;
            TextView tvsize;
            TextView tvprice;
            ImageView imgitem;
            ImageView imgview;
        }

    }
公共类ListItemAdapter扩展了BaseAdapter{
私有静态ArrayList DataProcessorResult;
私人充气机;
语境;
公共ListItemAdapter(上下文、ArrayList结果){
DataProcessorResult=结果;
myInflater=LayoutInflater.from(上下文);
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回DataProcessorResult.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回DataProcessorResult.get(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视窗座;
final Context mycontext=parent.getContext();
if(convertView==null){
convertView=myInflater.inflate(R.layout.custom\u view\u项,空);
holder=新的ViewHolder();
holder.tviitemcode=(TextView)convertView.findViewById(R.id.tviitemcode);
holder.tvitemname=(TextView)convertView.findViewById(R.id.tvitemname);
holder.tvsize=(TextView)convertView.findViewById(R.id.tvsize);
holder.tvprice=(TextView)convertView.findViewById(R.id.tvprice);
holder.imgitem=(ImageView)convertView.findViewById(R.id.imgitem);
holder.imgview=(ImageView)convertView.findViewById(R.id.imgview);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.tvitemcode.setText(DataProcessorResult.get(position.getItemCode());
holder.tvitemname.setText(DataProcessorResult.get(position.getItemName());
holder.tvsize.setText(DataProcessorResult.get(position.getSize());
holder.tvprice.setText(DataProcessorResult.get(position.getPrice());
holder.tvitemcode.setTextSize(TypedValue.COMPLEX_UNIT_PX,mycontext.getResources().getDimensionPixelSize(R.dimen.lbllistviewitem));
holder.tvitemname.setTextSize(TypedValue.COMPLEX_UNIT_PX,mycontext.getResources().getDimensionPixelSize(R.dimen.lbllistviewitem));
holder.tvsize.setTextSize(TypedValue.COMPLEX_UNIT_PX,mycontext.getResources().getDimensionPixelSize(R.dimen.lbllistviewitem));
holder.tvprice.setTextSize(TypedValue.COMPLEX_UNIT_PX,mycontext.getResources().getDimensionPixelSize(R.dimen.lbllistviewitem));
字符串imgName=DataProcessorResult.get(position.getItemCode();
imgName=(imgName.replace(“-”,”);
imgName=imgName.toLowerCase();
int imgID=0;
holder.imgitem.getLayoutParams().width=mycontext.getResources().getDimensionPixelSize(R.dimen.photolistviewitem);
holder.imgitem.getLayoutParams().height=mycontext.getResources().getDimensionPixelSize(R.dimen.photolistviewitem);
if(mycontext.getResources().getIdentifier(imgName+“\u 1”,“可绘制”,mycontext.getPackageName())==0)
{
字符串imagepath=Environment.getExternalStorageDirectory()+“/Asiades/”+imgName+“.jpg”;
File FileMain=新文件(imagepath);
如果(FileMain.exists()){
BitmapFactory.Options=new-BitmapFactory.Options();
options.inPreferredConfig=Bitmap.Config.ARGB_8888;
options.inSampleSize=8;
位图位图=BitmapFactory.decodeFile(图像路径,选项);
holder.imgitem.setImageBitmap(位图);
}否则{
imgID=mycontext.getResources().getIdentifier(“blankitem”,“drawable”,mycontext.getPackageName());
holder.imgitem.setImageResource(imgID);
}                       
}否则{
imgID=mycontext.getResources().getIdentifier(imgName+“_1”,“drawable”,mycontext.getPackageName());
holder.imgitem.setImageResource(imgID);
}       
holder.imgview.getLayoutParams().width=mycontext.getResources().getDimensionPixelSize(R.dimen.arrowicon);
holder.imgview.getLayoutParams().height=mycontext.getResources().getDimensionPixelSize(R.dimen.arrowicon);
holder.imgview.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
setItemCode(DataProcessorResult.get(position.getItemCode());
Intent MyIntent=newintent(mycontext,ViewDetailItem.class);
mycontext.startActivity(MyIntent);
}
});
if(位置%2==1){convertView.setBackgroundColor(Color.WHITE);}else{convertView.setBackgroundColor(Color.rgb(208212208));}
返回视图;
}
静态类视窗夹{
文本视图TVTItemCode;
文本视图TVTItemName;
文本视图大小;
文本视图价格;
ImageView imgitem;
ImageView-imgview;
}
}
这里是我的logcat错误: 10-30 00:12:38.370:E/AndroidRuntime(22719):位于android.content.res.Resources.loadDrawable(Resources.java:3022) 10-30 00:12:38.370:E/AndroidRuntime(22719):位于android.content.res.Resources.getDrawable(Resources.java:1586) 10-30 00:12:38