項目需求:在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條目中是縮略圖,自然放大的時候就會失真。
