基于ViewPager的相冊查看器

對于很多應用而言,一個少不了的功能就是相冊的查看,但是有沒有一個封裝好了的相冊處理頁面呢?接下來就來介紹我的相冊查看器。

基于ViewPager的實現(xiàn),是一個單獨的Activity,只需傳入存放圖片的集合就行,這里通過intent的傳遞數(shù)據(jù):pictureUrls = (ArrayList) b.getSerializable("info");然后就是照片的位置,默認是第零個位置:currentPosition=intent.getIntExtra("position",0);接下來就是添加到viewpager當中了。直接上代碼,粘貼復制到自己項目修改一下下就可以使用了。

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.support.v4.view.PagerAdapter;

importandroid.support.v4.view.ViewPager;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.ImageView;

importandroid.widget.TextView;

importcom.bumptech.glide.Glide;

importjava.util.ArrayList;

publicclassViewPagerActivityextendsActivity?{

privateViewPager?mPager;

privateArrayList?pictureUrls?=newArrayList<>();

privateTextView?text_button;

privateintcurrentPosition=0;

@Override

protectedvoidonCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_view_pager);

text_button?=?(TextView)?findViewById(R.id.text_button);

Intent?intent?=?getIntent();

if(!intent.equals(null))?{

Bundle?b?=?intent.getExtras();

if(b?!=null)?{

if(b.containsKey("info"))?{

pictureUrls?=?(ArrayList)?b.getSerializable("info");

}

}

}

if(intent.hasExtra("position")){

currentPosition=intent.getIntExtra("position",0);

}

text_button.setText(1+"/"+pictureUrls.size());

mPager?=?(ViewPager)?findViewById(R.id.pager);

mPager.setPageMargin((int)?(getResources().getDisplayMetrics().density?*15));

mPager.addOnPageChangeListener(newViewPager.OnPageChangeListener()?{

@Override

publicvoidonPageScrolled(intposition,floatpositionOffset,intpositionOffsetPixels)?{

}

@Override

publicvoidonPageSelected(intposition)?{

text_button.setText((position+1)+"/"+pictureUrls.size());

}

@Override

publicvoidonPageScrollStateChanged(intstate)?{

}

});

mPager.setAdapter(newPagerAdapter()?{

@Override

publicintgetCount()?{

returnpictureUrls.size();

}

@Override

publicbooleanisViewFromObject(View?view,?Object?object)?{

returnview?==?object;

}

@Override

publicObject?instantiateItem(ViewGroup?container,intposition)?{

PhotoView?view?=newPhotoView(ViewPagerActivity.this);

view.enable();

view.setScaleType(ImageView.ScaleType.FIT_CENTER);

//????????????????text_button.setText(position+"/"+pictureUrls.size());

Glide.with(ViewPagerActivity.this).load(pictureUrls.get(position)).into(view);

//????????????????view.setImageResource(pictureUrls[position]);

container.addView(view);

view.setOnClickListener(newView.OnClickListener()?{

@Override

publicvoidonClick(View?v)?{

ViewPagerActivity.this.finish();

}

});

returnview;

}

@Override

publicvoiddestroyItem(ViewGroup?container,intposition,?Object?object)?{

container.removeView((View)?object);

}

});

mPager.setCurrentItem(currentPosition);

}

}

期間用了glide來添加圖片,這個自行調(diào)整,如不需要也可以換用別的。照片查看當中可以左右滑動,也有下標,點擊照片退回原位置。

xml布局:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#000"

>

android:id="@+id/pager"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="40dp"

android:layout_marginBottom="40dp"/>

android:id="@+id/text_button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="1/10"

android:textColor="#fff"

android:textSize="14sp"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="15dp"/>

android:id="@+id/delete_photo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_marginBottom="15dp"

android:layout_alignParentRight="true"

android:paddingLeft="40dp"

android:paddingTop="5dp"

android:paddingRight="30dp"

android:text="刪除"

android:textSize="14sp"

android:textColor="#ffffff"

android:visibility="gone"/>


csdn項目地址:http://blog.csdn.net/greatdaocaoren/article/details/54890825

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容