2017-04-03 75 views
0

單擊按鈕時,我會在對話框中顯示固定高度350dp的ImageView。我使用這個庫compile 'com.commit451:PhotoView:1.2.4'用以下代碼:展開ImageView放大時的高度

PhotoViewAttacher pAttacher; 
pAttacher = new PhotoViewAttacher(Your_Image_View); 
pAttacher.update(); 

它運作良好,在/在變焦,但它並不時在變焦擴大的ImageView大小的圖像可以放大,但它仍然包含內部。固定350dp的imageview。如何在放大圖片內容時擴展圖片視圖的高度/寬度?

我試過這裏的方法Change the size of ImageView on zooming但仍無濟於事。任何幫助嗎?

+0

ü可以試試這個http://stackoverflow.com/questions/29456390 /如何改變圖像尺寸在運行時框內佈局 –

回答

0

您可以在不添加任何依賴的情況下執行此操作。只需要創建一個customImageView並對其執行操作。

入住這TouchImageView

,並在您Main Activity做到這一點:

imgDisplay = (TouchImageView) viewLayout.findViewById(R.id.imgDisplay); 
imgDisplay.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     Display display = _activity.getWindowManager().getDefaultDisplay(); 
     android.view.ViewGroup.LayoutParams layoutParams = imgDisplay.getLayoutParams(); 
     layoutParams.width = display.getWidth(); 
     layoutParams.height = display.getHeight(); 
     imgDisplay.setLayoutParams(layoutParams); 
     return true; 
    } 
}); 
imgDisplay.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() { 
    @Override 
    public boolean onSingleTapConfirmed(MotionEvent e) { 
     Display display = _activity.getWindowManager().getDefaultDisplay(); 
     android.view.ViewGroup.LayoutParams layoutParams = imgDisplay.getLayoutParams(); 
     layoutParams.width = display.getWidth(); 
     layoutParams.height = display.getHeight(); 
     imgDisplay.setLayoutParams(layoutParams); 
     return true; 
    } 

    @Override 
    public boolean onDoubleTap(MotionEvent e) { 
     Display display = _activity.getWindowManager().getDefaultDisplay(); 
     android.view.ViewGroup.LayoutParams layoutParams = imgDisplay.getLayoutParams(); 
     layoutParams.width = display.getWidth(); 
     layoutParams.height = display.getHeight(); 
     imgDisplay.setLayoutParams(layoutParams); 

     return true; 
    } 

    @Override 
    public boolean onDoubleTapEvent(MotionEvent e) { 
     return false; 
    } 
}); 

xml創建這樣

<com.example.TouchImageView 
     android:id="@+id/imgDisplay" 
     android:layout_width="fill_parent" 
     android:layout_height="300dp" 
     android:scaleType="matrix" 
     android:layout_centerVertical="true" 
     /> 
+0

我的TouchImageView在xml中沒有顯示.. – Henry

+0

Henry

+0

如果不是你的包名稱,請不要添加'com.example'。只需調用TouchImageView:'YourPackagename.TouchImageView'in xml –

相關問題