PhotoView實現圖片隨手勢的放大縮小的效果


項目需求:在listView的條目中如果有圖片,點擊條目,實現圖片的放大,並且圖片可以根據手勢來控制圖片放大縮小的比例。類似於微信朋友圈中查看好友發布的照片所實現的效果。

思路是這樣的:當點擊條目的時候觸發listview的點擊事件,跳轉到另一個頁面,在頁面中自定義一個ImageView來實現圖片的隨手勢的放大。但是點擊圖片來實現圖片消失這一點這塊小弟不會做,並且圖片隨手勢的放大效果並不好。所幸的是最中找到了photoview這一個控件。使用photoView控件需要使用jar包:發現博客園不能上傳jar,有需要的可以私信我:郵箱 chenruiyt@163.com

下面簡單說一下photoview的用法。非常簡單幺

在布局文件中添加photoview控件:

 

  <uk.co.senab.photoview.PhotoView
        android:id="@+id/img_showimgview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

主界面中:

photoview = (PhotoView) findViewById(R.id.img_showimgview);

photoview.setImageBitmap(bit);

photoview的點擊事件的監聽:

photoview.setOnPhotoTapListener(new OnPhotoTapListener() { @Override public void onPhotoTap(View view, float x, float y) { // TODO Auto-generated method stub  finish(); } });

在實現項目的需求的過程中,遇到了圖片失真的問題,下面說一下圖片失真的原因:

起初的實現方法是這樣的:

在點擊listview的條目的時候獲取到imageView中的圖片,在實現頁面跳轉的時候將圖像對象傳遞到下一個頁面

獲取ImageView中圖片的方法是:

img_get_photo.setDrawingCacheEnabled(true);
bitt = Bitmap.createBitmap(img_get_photo.getDrawingCache());
img_get_photo.setDrawingCacheEnabled(
false);

問題就出現在這里,此時獲得的bit,是imageview的“影像”並不是imageView中加載的圖片,通俗得說就是對imageview進行截屏處理,因為listview條目中是縮略圖,自然放大的時候就會失真。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM