PinchZoom не работает с scaleType: matrix - PullRequest
0 голосов
/ 02 ноября 2011

Здравствуйте, я новичок в Android. Я работаю над приложением, в котором мне нужно перевернуть изображения ( как галерея ) и увеличить изображение в фокусе. В настоящее время переворачивание ( с использованием viewFlipper) ) и пинч в Zoom работает нормально.

Но я хочу перестать листать последнее изображение.

Я использовал ViewFlipper.stopFlipping(), и он отлично работает, если я установил scaleType:fitXY в xml , но pinchZoom не работает с ним .

И

Если я использую ScaleType:matrix масштабирование работает, но при остановке переключения на последнем изображении, обрезает последнее изображение.

Я много искал, но ничего полезного не нашел. Любая помощь будет высоко оценена. Я был в этой проблеме в течение многих дней.

1 Ответ

2 голосов
/ 02 ноября 2011
public class Zoom extends View {
private Drawable image;
private int zoomControler=20; 
public Zoom(Context context)
{
    super(context);
    image=context.getResources().getDrawable(R.drawable.icon);
    setFocusable(true);

}
@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
super.onDraw(canvas);
image.setBounds((getWidth()/2)-zoomControler, (getHeight()/2)-zoomControler, (getWidth()/2)+zoomControler, (getHeight()/2)+zoomControler);
    image.draw(canvas);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if(keyCode==KeyEvent.KEYCODE_DPAD_UP)// zoom in
        zoomControler+=10;
    if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN) // zoom out
        zoomControler-=10;
    if(zoomControler<10)
        zoomControler=10;

    invalidate();
    return true;
}

}

...