У меня есть демонстрационная активность, которая по сути представляет собой сборник из 5 изображений. Я сохранил их в моем каталоге /drawable
. Я использую пользовательские реализации FragmentPagerAdapter
, потому что у меня есть статический набор фрагментов страницы через:ViewPager с ImageViews: страницы не читаются плавно
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
return SDemoFragment.newInstance(pos);
}
@Override
public int getCount() {
return 5;
}
}
У меня есть собственная реализация Fragment
, а также. В настоящее время у меня есть один макет ImageView, который я раздуваю, и в зависимости от mNum
источник изображения установлен в одну из моих графических чертежей.
public class SDemoFragment extends Fragment {
int mNum = 0;
/**
* Create a new instance of CountingFragment, providing "num" as an
* argument.
*/
public static SDemoFragment newInstance(int num) {
SDemoFragment f = new SDemoFragment();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
/**
* When creating, retrieve this instance's number from its arguments.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null)
mNum = getArguments().getInt("num");
}
/**
* The Fragment is created here.
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.pager_item_fragment, container,
false);
ImageView x = (ImageView) v.findViewById(R.id.pagerItemImage);
switch (mNum) {
case 0:
x.setImageResource(R.drawable.demo0);
break;
case 1:
x.setImageResource(R.drawable.demo1);
break;
case 2:
x.setImageResource(R.drawable.demo2);
break;
case 3:
x.setImageResource(R.drawable.demo3);
break;
case 4:
x.setImageResource(R.drawable.demo4);
break;
}
return x;
}
}
Код для простого макета изображения: pager_item_fragment.xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pagerItemImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="Tutorial"
android:src="@drawable/demo0" />
Есть ли причина, почему каждый раз, когда я красть от одного изображения к другому, она отстает? Есть ли проблема с памятью или с использованием правильного метода или вызывается inflater.inflate(...);
каждый раз, когда вызывается onCreateView()
? Любая помощь будет оценена, и если вам нужно больше разделов моего кода, не стесняйтесь спрашивать. Благодаря!
Обновление: теперь я регулярно получаю OutOfMemoryException
.
Вы прочитали это? http://developer.android.com/training/displaying-bitmaps/load-bitmap.html – 2Dee
Это было прекрасно, спасибо! – sarangj