Привет, я пытаюсь создать что-то вроде горизонтальной галереи, где я могу добавлять или удалять страницы, используя изображения из моей галереи/камеры.
Я пытаюсь заставить его работать с большими растровыми изображениями, поэтому я использую алгоритм для масштабирования растрового изображения и установки его для просмотра изображения каждой страницы. Алгоритму требуется ширина/высота ImageView (для уменьшения).
У меня проблема в том, что при выполнении моего пользовательского метода PagerAdapter ширина/высота ImageView еще не известна (getWidth/getHeight возвращает 0), поэтому он не работает:
public Object instantiateItem(ViewGroup collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.document_page, null);
((ViewPager) collection).addView(view, 0);
ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
// Obtain the image file URI
// Call algorithm to get scaled bitmap using ImageView width and height --> PROBLEM: imageView.getWidth()/Height() return 0!!
// Set ImageView with scaled bitmap to avoid OutOfMemory Exception
return view;
}
Что ты посоветуешь?
Спасибо.
inSampleSize
(youtube.com/watch?v=12cB7gnL6po) и производительность загрузки растровых изображений в целом (youtube.com/watch?v=rsQet4nBVi8 ). Обязательно проверьте, можете ли вы использовать некоторые знания для оптимизации кода и предотвращения исключения. - person saschoar   schedule 01.02.2013