1. 程式人生 > >android 圖片縮放後劃屏拖動圖片與Viewpager切換Item衝突(拖動圖片的事件相應被遮蔽)問題解決

android 圖片縮放後劃屏拖動圖片與Viewpager切換Item衝突(拖動圖片的事件相應被遮蔽)問題解決

複製程式碼
/**  
        *  設定拖拽狀態下的Matrix
        *  @param event   
        */
        public void setDragMatrix(MotionEvent event) {
            if(isZoomChanged()){
                float dx = event.getX() - mStartPoint.x; // 得到x軸的移動距離
                float dy = event.getY() - mStartPoint.y; // 得到x軸的移動距離
                
//避免和雙擊衝突,大於10f才算是拖動 if(Math.sqrt(dx*dx+dy*dy)>10f){ mStartPoint.set(event.getX(), event.getY()); //在當前基礎上移動 mCurrentMatrix.set(getImageMatrix()); float[] values=new float[9]; mCurrentMatrix.getValues(values); dy
=checkDyBound(values,dy); dx=checkDxBound(values,dx,dy); mCurrentMatrix.postTranslate(dx, dy); setImageMatrix(mCurrentMatrix); } }else { stopDrag(); } } /** * 和當前矩陣對比,檢驗dx,使影象移動後不會超出ImageView邊界 *
@param values * @param dx * @return */ private float checkDxBound(float[] values,float dx,float dy) { float width=getWidth(); if(!mLeftDragable&&dx<0){ //加入和y軸的對比,表示在監聽到垂直方向的手勢時不切換Item if(Math.abs(dx)*0.4f>Math.abs(dy)&&mFirstMove){ stopDrag(); } return 0; } if(!mRightDragable&&dx>0){ //加入和y軸的對比,表示在監聽到垂直方向的手勢時不切換Item if(Math.abs(dx)*0.4f>Math.abs(dy)&&mFirstMove){ stopDrag(); } return 0; } mLeftDragable=true; mRightDragable=true; if(mFirstMove) mFirstMove=false; if(mImageWidth*values[Matrix.MSCALE_X]<width){ return 0; } if(values[Matrix.MTRANS_X]+dx>0){ dx=-values[Matrix.MTRANS_X]; } else if(values[Matrix.MTRANS_X]+dx<-(mImageWidth*values[Matrix.MSCALE_X]-width)){ dx=-(mImageWidth*values[Matrix.MSCALE_X]-width)-values[Matrix.MTRANS_X]; } return dx; }
複製程式碼

相關推薦

android 圖片圖片Viewpager切換Item衝突圖片事件相應遮蔽問題解決

/** * 設定拖拽狀態下的Matrix * @param event */ public void setDragMatrix(MotionEvent event) { if(isZoomChanged

Android 實現圖片

今天我們來編寫一個縮放效果的ImageView ,網上有很多人都講了這些。但有許多人都直接使用了庫檔案, 那麼我們今天做的是直接上程式碼編寫一個拖動和縮放的ImageView,具體看效果圖, 那麼簡單了分析一下。在手機上縮放圖片和拖動要用到什麼?手指對不

android圖片指定大小 drawable獲取圖片怎麼設定圖片大小

http://gqdy365.iteye.com/blog/1125037 android圖片縮放(指定大小) private Drawable zoomDrawable(Drawable drawable, int w, int h) { in

android將給定圖片維持寬高比,擷取正中間的正方形部分

       /**      * 將給定圖片維持寬高比縮放後,擷取正中間的正方形部分。      * @param bitmap      原圖      * @param edgeLength  希望得到的正方形部分的邊長      * @return  縮放擷取正中部

自定義ImageView: 實現自由 ,自由移動圖片 .雙擊放大縮小圖片 相容ViewPager

直接擼程式碼, 複製就能用 package com.zhf.baselibrary.view; import android.annotation.SuppressLint; import android.content.Context; import android.graphi

Android 圖片-Matrix

Android中使用Matrix實現圖片的縮放和旋轉,通過本文學習 ,你將學會如何通過Matrix操作影象。 Matrix的操作,總共分為translate(平移),rotate(旋轉),scale(縮放)和skew(傾斜)四種,每一種變換在 Android的API裡都提供了set, post和pre三種

Android圖片 指定尺寸

//使用Bitmap加Matrix來縮放 public static Drawable resizeImage(Bitmap bitmap, int w, int h) { Bitmap BitmapOrg = bitmap;

c# WPF 中圖片功能,滑鼠位置

<Window x:Class="LJDX.MainWindow"         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"         xmlns:x="http://sc

Android利用載入大圖片避免記憶體溢位

因為安卓的堆記憶體有限(儘管現在隨著安卓手機螢幕解析度的提高堆記憶體沒有以前小螢幕時代那麼侷限),要是完全載入一張大圖片很容易導致OOM(out of memory)的問題。 所以為了解決這一情況,我

Android PhotoView 支援圖片的使用

private void initImagloader(Context context) { //獲取快取的路徑 File cacheDir = StorageUtils.getOwnCacheDirectory(contex

Android 圖片 BitmapFactory詳解

  在把圖片轉化為bitmap時,遇到大一些的圖片,我們經常會遇到OOM(Out Of Memory)的問題。因此需要把圖片進行縮放。 Options 這就用到了我們上面提到的BitmapFactory.Options這個類,下面逐一介紹Opti

Android圖片框架PhotoView

仿今日頭條中圖片的縮放處理。PhotoView是一個第三方的圖片處理框架,支援圖片的縮放。 PhotoView特性:    1.支援放縮超出邊界,多點觸控和雙擊事件    2.滾動和滑動   

surfaceView實現圖片功能

還是老闆牛,多向他學習請教。之前折騰了好一會兒的問題,被老闆一上午搞定。 問題:採用surface來實現多點觸控縮放,拖動顯示功能。 附上初稿程式碼,明天再好好整理下, public class MySurfaceView3 extends SurfaceView impl

Android中輪播所用到viewPager.PageTransformer 頁面滑動時候處理圖片效果程式碼

class ScalePagerTransformer implements ViewPager.PageTransformer {         //最小縮放率         private static final float MIN_SCALE = 0.85f;

android 開源photoView的使用單點/多點觸控來進行圖片的智慧控制元件

簡介PhotoView 是一款擴充套件自Android ImageView,支援通過單點/多點觸控來進行圖片縮放的智慧控制元件。特性:支援單點/多點觸控,即時縮放圖片; 支援平滑滾動; 在滑動父控制元件下能夠執行良好;(例如:ViewPager) 當用戶的觸點改變是可以觸

Android圖片,壓縮總結(inSampleSize,Matrix比較)

Android中經常會遇到需要對圖片進行縮放及壓縮的操作,下面列出3種圖片縮放方法: 一.圖片縮放 1.inSampleSize(取樣率) 優點:效率較高,解析速度快 缺點:取樣率inSampleSize的取值只能是2的次方數(例如:inSampleSize=1

Android圖片的方法

簡介 在Android專案中常常需要調整原始圖片的尺寸大小以適應儲存、傳輸和圖片處理等需求。在Android API中提供了一些縮放圖片的方法,在專案中發現,使用Android API中的Canvas、BitmapFactory和ThumbnailUtils等

Android 佈局手勢,可滑動檢視,實現類似Imgview圖片效果

Android 自定義View 佈局手勢縮放,可滑動檢視,子View實現類似Imgview圖片縮放效果 自定義View,使用ViewDragHelper和ScaleGestureDetector結合簡單的實現類似PhotoView的效果的控制元件,使佈局內的子

android實現圖片、移動、單擊退出、雙擊

實現思路 思路:重寫用於顯示圖片的ImageView,定義ScaleGestureDetector(縮放手勢檢測)型別、GestureDetector(雙擊手勢檢測)型別的變數進行手勢檢測並重寫方法實現圖片的縮放、移動、單擊退出、雙擊放大等功能。 重

android圖片、放大demo

示例原圖:拖動檢視其他部分:  放大仔細檢視  程式碼示例,註釋比較詳細,其他不多講了package com.study.drascale;import android.os.Bundle;import android.app.Activity;import android.