آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در گالری عکس ؟(خیلی ضروریه!)

Shadow  10 سال پیش  10 سال پیش
0 0

دوستان توی این کدی که نوشتم یه مشکلی هست وقتی روی یه عکس کلیک می کنم باید بره صفحه دیگه و همون عکس رو نشون بده ولی با کلیک روی عکس force close میشه و خطای nullPointExciption رو می ده و می گه UriString تون مقدارش null هست دوستان کسی دلیلش رو می دونه ؟

 public class PhotogalleryActivity extends Activity {

GridView gv;
ArrayList<File> list;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list = imageReader(Environment.getExternalStorageDirectory());
gv = (GridView) findViewById(R.id.gridView);
gv.setAdapter(new GridAdapter());
gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
startActivity(new Intent(PhotogalleryActivity.this, ViewImage.class).putExtra("img", list.get(arg2)));
}

});
}


class GridAdapter extends BaseAdapter {

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


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


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


@Override
public View getView(int arg0, View convertView, ViewGroup arg2) {
// TODO Auto-generated method stub
convertView = getLayoutInflater().inflate(R.layout.single_gride, arg2, false);
ImageView iv = (ImageView) convertView.findViewById(R.id.imageView);
iv.setImageURI(Uri.parse(getItem(arg0).toString()));

return convertView;
}
}


ArrayList<File> imageReader(File root) {
ArrayList<File> a = new ArrayList<File>();
File[] files = root.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
a.addAll(imageReader(files[i]));
} else {
if (files[i].getName().endsWith(".jpg")) {
a.add(files[i]);
}
}
}
return a;
}
}

اینم کد اکتیویتی دوم
 public class ViewImage extends Activity {

ImageView iv2;


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.viewimage);
iv2 = (ImageView) findViewById(R.id.imageView1);
Intent i = getIntent();
String f = i.getStringExtra("img");

iv2.setImageURI(Uri.parse(f));
}
}
0 0
دوستان لطفا جواب بدید خیلی عجله ایه؟!!!!!!!!!!!! (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
محسن علیزاده  10 سال پیش
+1 0

اینو:

 list.get(arg2)

به این تغییر بده ببین درست میشه؟

 list.get(arg2).toString()

 

+1 0
ایول داری درست شد محسن جان تشکر می کنم (10 سال پیش)
+2 0
محسن جان یه کمک دیگه هم می خوام: به جای مسیر SD Card می خوام عکس ها رو از توی پوشه ای داخل asset بخونم ؟ چکار کنم؟ (10 سال پیش)
پاسخ به سوال 
محسن علیزاده  10 سال پیش
+1 0

از این تابع استفاده کن:

try {
InputStream bitmap=getAssets().open("icon.png");
Bitmap bit=BitmapFactory.decodeStream(bitmap);
img.setImageBitmap(bit);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .