android bitmap getwidth,NullPointerException:尝试调用虚方法’int android.graphics.Bitmap.getWidth()’...

public class CategoryAdapter extends BaseAdapter {

Context context;

ArrayList model;

LayoutInflater layoutInflater;

public CategoryAdapter(Activity activity, ArrayList model) {

this.model = model;

this.context = activity;

}

@Override

public int getCount() {

return model.size();

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder viewHolder = null;

layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

if (convertView == null) {

viewHolder = new ViewHolder();

convertView = layoutInflater.inflate(R.layout.category_adapter, parent, false);

viewHolder.imageView = (ImageView) convertView.findViewById(R.id.category_grid_image);

viewHolder.textView = (TextView) convertView.findViewById(R.id.get_category_title);

convertView.setTag(viewHolder);

} else {

viewHolder = (ViewHolder) convertView.getTag();

}

viewHolder.textView.setText(model.get(position).getCategoryName());

if(position<=3){

viewHolder.imageView.setImageBitmap(StringToBitMap(model.get(position).getCategoryImage()));

}

else {

viewHolder.imageView.setImageBitmap(getBitmap(model.get(position).getCategoryImage()));

}

return convertView;

}

private class ViewHolder {

public ImageView imageView;

public TextView textView;

}

private Bitmap getBitmap(String path) {

BitmapFactory.Options option = new BitmapFactory.Options();

option.inSampleSize = 8;

Bitmap bitmap = BitmapFactory.decodeFile(path, option);

Matrix matrix = new Matrix();

matrix.postRotate(getImageOrientation(path));

Bitmap rotatedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);

Bitmap resized = Bitmap.createScaledBitmap(rotatedBitmap, 150, 150, true);

return resized;

}

private static int getImageOrientation(String imagePath) {

int rotate = 0;

try {

File imageFile = new File(imagePath);

ExifInterface exif = new ExifInterface(

imageFile.getAbsolutePath());

int orientation = exif.getAttributeInt(

ExifInterface.TAG_ORIENTATION,

ExifInterface.ORIENTATION_NORMAL);

switch (orientation) {

case ExifInterface.ORIENTATION_ROTATE_270:

rotate = 270;

break;

case ExifInterface.ORIENTATION_ROTATE_180:

rotate = 180;

break;

case ExifInterface.ORIENTATION_ROTATE_90:

rotate = 90;

break;

}

} catch (IOException e) {

e.printStackTrace();

}

return rotate;

}

public Bitmap StringToBitMap(String encodedString){

try {

byte [] encodeByte=Base64.decode(encodedString, Base64.DEFAULT);

Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);

return bitmap;

} catch(Exception e) {

e.getMessage();

return null;

}

}

}

我收到如下错误..

java.lang.NullPointerException: Attempt to invoke virtual method ‘int

android.graphics.Bitmap.getWidth()’ on a null object reference

at com.adapter.CategoryAdapter.getBitmap(CategoryAdapter.java:92)

at com.adapter.CategoryAdapter.getView(CategoryAdapter.java:75)

at android.widget.AbsListView.obtainView(AbsListView.java:2896)

at android.widget.GridView.makeAndAddView(GridView.java:1456)

at android.widget.GridView.makeRow(GridView.java:361)

at android.widget.GridView.fillDown(GridView.java:302)

at android.widget.GridView.fillFromTop(GridView.java:437)

at android.widget.GridView.layoutChildren(GridView.java:1284)

at android.widget.AbsListView.onLayout(AbsListView.java:2700)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)

at android.widget.FrameLayout.onLayout(FrameLayout.java:514)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1702)

at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1556)

at android.widget.LinearLayout.onLayout(LinearLayout.java:1465)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)

at android.widget.FrameLayout.onLayout(FrameLayout.java:514)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1702)

at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1556)

at android.widget.LinearLayout.onLayout(LinearLayout.java:1465)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)

at android.widget.FrameLayout.onLayout(FrameLayout.java:514)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1702)

at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1556)

at android.widget.LinearLayout.onLayout(LinearLayout.java:1465)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)

at android.widget.FrameLayout.onLayout(FrameLayout.java:514)

at android.view.View.layout(View.java:16899)

at android.view.ViewGroup.layout(ViewGroup.java:5405)

我怎么解决这个问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值