بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
سوال در مورد MemoryCache
سلام بچه ها:
من یک ViewPager دارم که خودش اتوماتیک عوض میشه در یک قسمت از پروژه ام. حالا وقتی عکس ها عوض میشه بعد از چند دقیقه از برنامه میاد بیرون .
می خوام از Memory Catch استفاده کنم ولی بلد نیستم . کسی اطلاعات داره که ایا بهتر میشه یا مشکل از یه جا دیگه میتونه باشه.
اینو هم بگم وقتی سایز عکس ها کوچک است این اتفاق نمیوفته.
public class HomeFragment extends Fragment { ViewPager mViewPager; private CustomPagerAdapter mCustomPagerAdapter; private ImageView[] imageViews; public HomeFragment(){} public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_home, container, false); ImageView imgProduct = (ImageView) rootView.findViewById(R.id.imgProduct); imgProduct.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ProductFragment nextFrag= new ProductFragment(); getFragmentManager().beginTransaction() .replace(R.id.frame_container, nextFrag) .addToBackStack(null) .commit(); } }); mCustomPagerAdapter = new CustomPagerAdapter(getActivity()); mViewPager = (ViewPager) rootView.findViewById(R.id.pager); mViewPager.setAdapter(mCustomPagerAdapter); pageSwitcher(4); return rootView; } Timer timer; int page = 0; public void pageSwitcher(int seconds) { timer = new Timer(); timer.scheduleAtFixedRate(new RemindTask(), 0, seconds * 1000); } class RemindTask extends TimerTask { @Override public void run() { getActivity().runOnUiThread(new Runnable() { public void run() { if (page >= mCustomPagerAdapter.size()) { page = 0; } else { mViewPager.setCurrentItem(page++); } } }); } } }
CustomPagerAdapter.java
public class CustomPagerAdapter extends PagerAdapter {
int[] mResources = {
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4
};
Context mContext;
LayoutInflater mLayoutInflater;
protected Runnable itemView;
public CustomPagerAdapter(Context context) {
mContext = context;
mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return mResources.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((LinearLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View itemView = mLayoutInflater.inflate(R.layout.pager_item, container, false);
ImageView imageView = (ImageView) itemView.findViewById(R.id.imageView);
imageView.setImageResource(mResources[position]);
container.addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((LinearLayout) object);
}
public int size() {
return mResources.length;
}
}
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
