viewpager+photoview實(shí)現(xiàn)圖片查看器
本文實(shí)例為大家分享了Android實(shí)現(xiàn)圖片查看器的具體代碼,供大家參考,具體內(nèi)容如下

效果需要兩個(gè)手指禁止縮放,所以沒有光標(biāo),只能用手機(jī)投放電腦上錄制動(dòng)態(tài)圖片;
demo中實(shí)用了一個(gè)第三方的photoview,非常簡(jiǎn)單實(shí)用;可實(shí)現(xiàn)圖片雙擊放大,手勢(shì)放大縮小,當(dāng)手指離開屏幕時(shí)如果圖片小于原圖可自動(dòng)恢復(fù)原圖大小,可實(shí)現(xiàn)點(diǎn)擊監(jiān)聽,長按圖片監(jiān)聽;
整個(gè)demo非常簡(jiǎn)單,整體就是一個(gè)activity,頁面布局只有一個(gè)viewpager和textview
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/tv_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:textColor="#ffffff" android:textSize="30sp" /> </RelativeLayout>
在activity中初始化圖片的url,將集合傳遞到適配器FragmentPagerAdapter中即可中即可;
每個(gè)適配器中顯示一個(gè)fragment,這里自己創(chuàng)建一個(gè)即可
/**
* Created by zheng on 2017/11/27.
*/
public class PhotoFragment extends Fragment {
private String url;
private PhotoView mPhotoView;
/**
* 獲取這個(gè)fragment需要展示圖片的url
* @param url
* @return
*/
public static PhotoFragment newInstance(String url) {
PhotoFragment fragment = new PhotoFragment();
Bundle args = new Bundle();
args.putString("url", url);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
url = getArguments().getString("url");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_img, container, false);
mPhotoView = view.findViewById(R.id.photoview);
//設(shè)置縮放類型,默認(rèn)ScaleType.CENTER(可以不設(shè)置)
mPhotoView.setScaleType(ImageView.ScaleType.CENTER);
mPhotoView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
ToastUtils.showToast(getContext(),"長按事件");
return true;
}
});
mPhotoView.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
@Override
public void onPhotoTap(View view, float x, float y) {
ToastUtils.showToast(getContext(),"點(diǎn)擊事件,真實(shí)項(xiàng)目中可關(guān)閉activity");
}
});
Glide.with(getContext())
.load(url)
.placeholder(R.mipmap.ic_launcher)//加載過程中圖片未顯示時(shí)顯示的本地圖片
.error(R.mipmap.ic_launcher)//加載異常時(shí)顯示的圖片
// .centerCrop()//圖片圖填充ImageView設(shè)置的大小
.fitCenter()//縮放圖像測(cè)量出來等于或小于ImageView的邊界范圍,該圖像將會(huì)完全顯示
.into(mPhotoView);
return view;
}
}
fragment布局非常簡(jiǎn)單,只有一個(gè)圖片展示的view
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <uk.co.senab.photoview.PhotoView android:id="@+id/photoview" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
想要實(shí)用PhotoView和Glide需要build.gradle中添加
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
dependencies {
compile 'com.github.chrisbanes.photoview:library:+'
compile 'com.github.bumptech.glide:glide:3.7.0'
}
點(diǎn)擊打開鏈接免費(fèi)下載源碼
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Flutter有無狀態(tài)類與State及生命周期詳細(xì)介紹
這篇文章主要介紹了Flutter無狀態(tài)類、有狀態(tài)類、State、生命周期,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09
Flutter構(gòu)建自定義Widgets的全過程記錄
在Flutter實(shí)際開發(fā)中,大家可能會(huì)遇到flutter框架中提供的widget達(dá)不到我們想要的效果,這時(shí)就需要我們?nèi)プ远xwidget,下面這篇文章主要給大家介紹了關(guān)于Flutter構(gòu)建自定義Widgets的相關(guān)資料,需要的朋友可以參考下2022-01-01
Android實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能,能在上次的斷點(diǎn)處繼續(xù)上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
Flutter禁止手機(jī)橫屏的簡(jiǎn)單實(shí)現(xiàn)方法
app默認(rèn)是可以橫屏的,如果需要禁止橫屏話可以參考這篇文章,本文主要給大家介紹了關(guān)于Flutter禁止手機(jī)橫屏的簡(jiǎn)單實(shí)現(xiàn)方法,需要的朋友可以參考下2021-07-07
Android編程開發(fā)之TextView單擊鏈接彈出Activity的方法
這篇文章主要介紹了Android編程開發(fā)之TextView單擊鏈接彈出Activity的方法,涉及Android中TextView控件的相關(guān)操作技巧,需要的朋友可以參考下2016-01-01
Android Textview實(shí)現(xiàn)顏色漸變滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android Textview實(shí)現(xiàn)顏色漸變滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
android編程實(shí)現(xiàn)對(duì)話框的封裝實(shí)例
這篇文章主要介紹了android編程實(shí)現(xiàn)對(duì)話框的封裝,以實(shí)例形式分析了Android針對(duì)對(duì)話框的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11

