0
많은 조각 (스 와이프보기)이있는 ViewPagerActivity가 있습니다. 각 프래그먼트는 imageView를 포함합니다. 나는이 조각 사이를 탐색 할 때 때때로, 나는 오류가 있습니다setOmageUri를 사용하여 OutOfMemory
11-25 23:22:05.880: E/AndroidRuntime(15019): FATAL EXCEPTION: main
11-25 23:22:05.880: E/AndroidRuntime(15019): java.lang.OutOfMemoryError
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:650)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:476)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.graphics.drawable.Drawable.createFromStream(Drawable.java:741)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.widget.ImageView.resolveUri(ImageView.java:631)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.widget.ImageView.setImageURI(ImageView.java:379)
11-25 23:22:05.880: E/AndroidRuntime(15019): at com.thesnowcoach.android.jpgviewer.JpgFragment.loadNewCourse(JpgFragment.java:381)
11-25 23:22:05.880: E/AndroidRuntime(15019): at com.thesnowcoach.android.jpgviewer.JpgFragment.onCreateView(JpgFragment.java:199)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
11-25 23:22:05.880: E/AndroidRuntime(15019): at android.support.v4.view.ViewPager$3.run(ViewPager.java:244)
코드 :
private void loadNewCourse(int times) {
Display display = this.getActivity().getWindowManager().getDefaultDisplay();
int height = display.getHeight();
mImageSwitcher.getLayoutParams().height=height;
barLayout.setBackgroundColor(Color.rgb(cours.getCategorie()
.getCouleur().getR(), cours.getCategorie().getCouleur().getV(),
cours.getCategorie().getCouleur().getB()));
// Ajout du titre de la progression à la fenetre
titreCours = (TextView) barLayout.findViewById(R.id.titreCours);
titreCours.setText(cours.getTitre());
mImages = JpgViewerTools.loadPicturesFromSDCardExcept(absolutePath + File.separator
+ cours.getId());
slidesSize = mImages.size();
mDifferentSlidesSize = ViewPagerActivity.slidesSize;
displaySlidesCount();
if (times == 0) {
barState = BarState.ELLAPSED;
} else
barState = BarState.ELLAPSED;
mImageSwitcher.setImageURI(Uri.fromFile(new File(mImages
.get(getArguments().getInt("position")))));
state = setState(getArguments().getInt("position"));
}
가 어떻게이 문제를 해결할 수 있습니까? 감사합니다.
특정 번호 뒤에 페이지를 놓고 나중에 필요할 경우 추가 할 수 있습니까? 스레드를 사용하여 각 이미지를로드하는 경우 문제가 해결 될 수 있습니까? –
각 페이지 및 위치에 항목 또는 배열 목록을 유지하십시오. 위치를 옮길 때 표시되는 페이지를 업데이트하십시오. – Brianjs
예가 있습니까? 나는 그것을 구현하는 방법을 이해하는 데 약간의 어려움이 있기 때문에 –