2017-04-03 6 views
0

ボタンをクリックすると、固定高さ350dpのImageViewがダイアログボックスに表示されます。私は、次のコードでこのライブラリcompile 'com.commit451:PhotoView:1.2.4'を使用しています:拡大時のImageViewの高さを拡大

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

それはで/ズームアウトにうまく動作しますが、それは中にズームするとImageViewののサイズを拡張しない画像がズームすることができますが、内部でそれがまだ含まれています。画像ビューの350dp固定。画像をズームインすると、画像ビューの高さ/幅をどのように拡大できますか?

私はここでアプローチを試みたが、Change the size of ImageView on zoomingまだ役に立たない。何か助けてください?

+0

のように作成http://stackoverflow.com/questions/29456390/how-to-change-the-image-size-at-runtimeのフレームレイアウト –

答えて

0

依存関係を追加することなく実行できます。 customImageViewを作成し、その上でアクションを実行するだけです。

チェックこの

とでTouchImageViewあなたMain Activity次の操作を行います。uはこれを試すことができます

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

xmlのTouchImageViewが表示されない.. – Henry

+0
+0

あなたのパッケージ名でない場合は、 'com.example'を追加しないでください。TouchImageViewを次のように呼び出してください: 'YourPackagename.TouchImageView' in xml –

関連する問題