我從我的畫廊得到的所有圖像(圖片來自三星galaxy s5)
我可以查看來自Viewpager的圖像。
但是當我開始刷卡。它太慢了。
幾秒鐘後,應用程序崩潰,沒有logcat錯誤。ViewPager太慢時滑動(使用畢加索)
public class Paging extends PagerAdapter {
private ArrayList<String> IMAGES = new ArrayList<>();
private Context context;
private LayoutInflater layoutInflater;
public Paging(Context context) {
this.context = context;
}
@Override
public int getCount() {
return MainActivity.IMAGES.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return (view == (LinearLayout) object);
}
@Override
public View instantiateItem(View container, int position) {
IMAGES = (ArrayList<String>) MainActivity.IMAGES.clone();
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View item_view = layoutInflater.inflate(R.layout.imagepager_layout, (ViewGroup) container, false);
ImageView imageView = (ImageView) item_view.findViewById(R.id.img);
Picasso.with(context)
.load(IMAGES.get(position))
.placeholder(R.drawable.plusbtn)
.into(imageView);
((ViewGroup) container).addView(item_view);
return item_view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((LinearLayout) object);
}
}
我的viewPager添加適配器。
viewPager = (ViewPager)findViewById(R.id.view_pager);
adap = new Paging(MainActivity.this);
viewPager.setAdapter(adap);
我個XML ..
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical">
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center" />
</LinearLayout>
我的觀點尋呼機。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.v4.view.ViewPager>
</LinearLayout>
您的圖片太大,所以應用程序會發生ANR。加載之前嘗試減小圖像大小。 –
我如何減少圖像的大小,但會在我的手機畫廊查看相同? –
谷歌有很多關於「縮小Android的圖像大小」的答案。下面是加載前縮放圖像的示例:http://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-to-a-bitmap-object/823966#823966 –