PDA

View Full Version : مشکل این کد (ViewPager)



farzad_shami12
جمعه 13 تیر 1393, 18:17 عصر
Grid view

public class Grid_View extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set title for the GridView
setTitle("GridView");
// Get the view from grid_view.xml
setContentView(R.layout.grid_view);

// Set the images from ImageAdapter.java to GridView
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));

// Listening to GridView item click
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

// Launch ImageViewPager.java on selecting GridView Item
Intent i = new Intent(getApplicationContext(), ImageViewPager.class);

// Show a simple toast message for the item position
Toast.makeText(Grid_View.this, "" + position, Toast.LENGTH_SHORT).show();

// Send the click position to ImageViewPager.java using intent
i.putExtra("id", position);

// Start ImageViewPager
startActivity(i);
}
});
}

// Not using options menu for this tutorial
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

Image Pager Adapter

public class ImagePagerAdapter extends PagerAdapter {

private List<ImageView> images;

public ImagePagerAdapter(List<ImageView> images) {
this.images = images;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = images.get(position);
container.addView(imageView);
return imageView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(images.get(position));
}

@Override
public int getCount() {
return images.size();
}

@Override
public boolean isViewFromObject(View view, Object o) {
return view == o;
}
}

Image Adapter

public class ImageAdapter extends BaseAdapter {
private Context mContext;

public ImageAdapter(Context c) {
mContext = c;
}

public int getCount() {
return mThumbIds.length;
}

public Object getItem(int position) {
return mThumbIds[position];
}

public long getItemId(int position) {
return 0;
}

// Create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // If it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setScaleType(ImageView.ScaleType.CENTER_ CROP);
} else {
imageView = (ImageView) convertView;
}

imageView.setImageResource(mThumbIds[position]);
return imageView;
}

// References to our images in res > drawable
public static Integer[] mThumbIds = {
R.drawable.sample_0 , R.drawable.sample_1 ,
R.drawable.sample_2 , R.drawable.sample_3 ,
R.drawable.sample_4 , R.drawable.sample_5 ,
R.drawable.sample_6 , R.drawable.sample_7 ,
R.drawable.sample_8 , R.drawable.sample_9 ,
R.drawable.sample_10 , R.drawable.sample_11 ,
R.drawable.sample_12 , R.drawable.sample_13 ,
R.drawable.sample_14 , R.drawable.sample_15 ,
R.drawable.sample_16 , R.drawable.sample_17 ,
R.drawable.sample_18 , R.drawable.sample_19 ,
R.drawable.sample_20 , R.drawable.sample_21 ,
R.drawable.sample_22 , R.drawable.sample_23 ,
R.drawable.sample_24 , R.drawable.sample_25 ,
R.drawable.sample_26 , R.drawable.sample_27 ,
R.drawable.sample_28 , R.drawable.sample_29 ,
R.drawable.sample_30 , R.drawable.sample_31 ,
R.drawable.sample_32 , R.drawable.sample_33 ,
R.drawable.sample_34 , R.drawable.sample_35 ,
R.drawable.sample_36 , R.drawable.sample_37 ,
R.drawable.sample_38 , R.drawable.sample_39 ,
R.drawable.sample_40 , R.drawable.sample_41 ,
R.drawable.sample_42 , R.drawable.sample_43 ,
R.drawable.sample_44 , R.drawable.sample_45 ,
R.drawable.sample_46 , R.drawable.sample_47 ,
R.drawable.sample_48 , R.drawable.sample_49 ,
R.drawable.sample_50 , R.drawable.sample_51 ,
R.drawable.sample_52 , R.drawable.sample_53 ,
R.drawable.sample_54 , R.drawable.sample_55 ,
R.drawable.sample_56 , R.drawable.sample_57 ,
R.drawable.sample_58 , R.drawable.sample_59 };

public static Integer[] mPics =
{
R.drawable.s_1 , R.drawable.s_2 , R.drawable.s_3 , R.drawable.s_4 , R.drawable.s_5 , R.drawable.s_6 , R.drawable.s_7 , R.drawable.s_8 , R.drawable.s_9 , R.drawable.s_10 , R.drawable.s_11 , R.drawable.s_12 , R.drawable.s_13,
R.drawable.s_14 , R.drawable.s_15 , R.drawable.s_16 , R.drawable.s_17 , R.drawable.s_18 , R.drawable.s_19 , R.drawable.s_20 , R.drawable.s_21 , R.drawable.s_22 , R.drawable.s_23 , R.drawable.s_24 , R.drawable.s_25 , R.drawable.s_26,
R.drawable.s_27 , R.drawable.s_28 , R.drawable.s_29 , R.drawable.s_30 , R.drawable.s_31 , R.drawable.s_32 , R.drawable.s_33 , R.drawable.s_34 , R.drawable.s_35 , R.drawable.s_36 , R.drawable.s_37 , R.drawable.s_38 ,
R.drawable.s_39 , R.drawable.s_40 , R.drawable.s_41 , R.drawable.s_42 , R.drawable.s_43 , R.drawable.s_44 , R.drawable.s_45 , R.drawable.s_46 , R.drawable.s_47 , R.drawable.s_48 , R.drawable.s_49 , R.drawable.s_49 ,
R.drawable.s_50 , R.drawable.s_51 , R.drawable.s_52 , R.drawable.s_53 , R.drawable.s_54 , R.drawable.s_55 , R.drawable.s_56 , R.drawable.s_57 , R.drawable.s_58 , R.drawable.s_59 , R.drawable.s_60 };
}

من مشکلم اینجاست که این برنامه با 20 عکس به درستی کار میکرد
الان هم درست کارمیکنه ولی وقتی روی عکس کوچیک کلیک میشه که عکس بزرگ رو نشون بده "فورس کلوز"میده!!!!!!!!
راهنمایی کنید.
(توضیح بیشتر:وقتی اینR.drawable 20 بود کار میکرد وقتی روی عکس کوچسک میزدی بزرگره رو درس نشون میدادولی الان که شده 60 تا عکس عکس کوچیکا رو به درستی نشون میده وقتی روش میزنی بزرگش رو بیاره فورس کلوز میده )

SASAN_AH
جمعه 13 تیر 1393, 20:24 عصر
سلام 1_حجم عکس ها 2_جایی که عکس ها رو گذاشتین 3_نسبت هر عکس در همدیگر! اینا رو چک کنید بگید!

farzad_shami12
شنبه 14 تیر 1393, 08:25 صبح
1-حجم عکسا:
عکسای کوچیک 180px*180px هستن که توبرنامه از 90*90 استفاده میشه حجمشون بین 40 تا 60 کیلوبایته
و عکسای بزرگ سایزای مختلفی دارن که تو برنامه از سایز اصلیشون استفاده میشه وحجمشون بین60تا 200 کیلوبایت متغیره
2-مکان:
تصاویر کوچیک(sample)درdrawable-hdpi
تصاویر بزرگ(s_1و...)در پوشه ای جداگانه به نام drawable-nodpi
3-نسبت هر عکس:
منظورتون رو متوجه نشدم!!!!!!!!!!؟؟؟؟؟؟؟

farzad_shami12
شنبه 14 تیر 1393, 10:16 صبح
راستی تازه امتحان کردم تا sample_46 و s_47کار میکنه بعد از اون فورس کلوز میده

SASAN_AH
شنبه 14 تیر 1393, 10:18 صبح
سلام

1_بنظرم ظرفیت گرید ویو حدی داشته باشه زیاد باشه فضای رم موجود به اختصاصی بیشتر میشه

2_بعضی از ارور ها مربوط به مکان ذخیره عکس میباشد
مهمه که مسیر انتخابی برای سایر گوشی ها مشکل ساز نباشه

3_ منظور نسبت هر عکس اینه که برای فاصله از هر عکس شما مقدار دهی نکردین

کدش این شکلیه توی get view


imageview = new ImageView(mContext);
imageview.setLayoutParams(new GridView.LayoutParams(320,320));
imageview.setScaleType(ImageView.ScaleType.CENTER_ CROP);
imageview.setPadding(12, 12, 12, 12);

farzad_shami12
شنبه 14 تیر 1393, 11:44 صبح
ممنون
فک کنم مورد اول درس باشه من تقسیم بندی کردم 30 تا یه جا و 30 تا جا دیگه
به هر حال ممنون:لبخند: