public class CategoryAdapter extends BaseAdapter {
Context context;
ArrayList<ModelCategory> model;
LayoutInflater layoutInflater;
public CategoryAdapter(Activity activity, ArrayList<ModelCategory> 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;
}
}
}NullPointerException: 'पूर्णांक android.graphics.Bitmap.getWidth()' आभासी विधि आह्वान करने के लिए
.. मैं error
नीचे की तरह हो रही है प्रयास
java.lang.NullPointerException: Com.adapter.CategoryAdapter.getBitmap (CategoryAdapter.java:92) पर com.adapter.CategoryAdapter.getView (Category एडाप्टर) पर एक शून्य ऑब्जेक्ट संदर्भ पर वर्चुअल विधि 'int android.graphics.Bitmap.getWidth()' को आमंत्रित करने का प्रयास करें। .जावा: 75) android.widget.AbsListView.obtainView (AbsListView.java:2896) android.widget.GridView.makeAndAddView (GridView.java:1456) पर android.widget.GridView.makeRow पर (GridView.java:361) पर पर android.widget.GridView.fillDown (GridView.java:302) android.widget.GridView.fillFromTop (GridView.java:437) atroid.widget.GridView.layoutChildren (GridView.java:1284) एंड्रॉइड पर। widget.AbsListView.onLayout (AbsListView.java:2700) android.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.widget पर। RelativeLayout.onLayout (RelativeLayout.java:1077) atroid.view.View.layout (View.j पर ava: 16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.widget.FrameLayout.layoutChildren (FrameLayout.java:5279) atroid.widget.FrameLayout.onLayout (FrameLayout.java: 514) atroid.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.support.v4.widget.DrawerLayout.onLayout (DrawerLayout) पर। जावा: 1043) atroid.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.widget.LinearLayout.setChildFrame (LinearLayout.java: 1702) atroid.widget.LinearLayout.layout वर्टिकल (LinearLayout.java:1556) एंड्रॉइड पर .widget.LinearLayout.onLayout (LinearLayout.java:1465) atroid.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.widget पर .elativeLayout.onLayout (RelativeLayout.java:1077) atroid.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.widget.FrameLayout पर .layoutChildren (FrameLayout.java:5279) android.widget.FrameLayout.onLayout (FrameLayout.javaoci14) atroid.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout पर (ViewGroup.java:52405) atroid.widget.LinearLayout.setChildFrame (LinearLayout.java:1702) android.widget.LinearLayout.layoutVertical (LinearLayout.java:1556) atroid.widget.LinearLayout.onLayout (LinearLayout.java:1465) atroid.view.View.layout (View.java:16899) एंड्रॉइड पर .view.ViewGroup.layout (ViewGroup.java:52405) android.widget.FrameLayout.layoutChildren (FrameLayout.java:5279) atroid.widget.FrameLayout.onLayout (FrameLayout.java:5214) atroid.view पर .View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.widget.LinearLayout.setChildFrame (LinearLayout.java:1702) atroid.widget.LinearLayout पर .layoutVertical (LinearLayout.java:1556) android.widget.LinearLayout पर।onLayout (LinearLayout.java:1465) atroid.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup.java:52405) atroid.widget.FrameLayout.layoutChildren (FrameLayout.java:5279) atroid.widget.FrameLayout.onLayout (FrameLayout.javaoci14) atroid.view.View.layout (View.java:16899) atroid.view.ViewGroup.layout (ViewGroup। जावा: 5405)
मैं इसे कैसे हल कर सकता हूं?
आपकी बिटमैप निर्माण विफल हो रही है। क्या आप सुनिश्चित हैं कि 'पथ' मान सही है और वास्तविक बिटमैप को इंगित करता है? –
फिर से Getmitmap विधि की जांच करें, आप वहां शून्य सूचक प्राप्त कर रहे हैं। –