utilizzando ontouch per ingrandire
-
27-09-2019 - |
Domanda
Ho usato alcuni esempi di codice e sto cercando di modificarlo per farmi consentire all'utente di toccare lo schermo e ingrandire il codice viene eseguito bene senza gli errori, ma quando tocco dello schermo non succede nulla
package com.thomas.zoom;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
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);
//here u can control the width and height of the images........ this line is very important
image.setBounds((getWidth()/2)-zoomControler, (getHeight()/2)-zoomControler, (getWidth()/2)+zoomControler, (getHeight()/2)+zoomControler);
image.draw(canvas);
}
public boolean onTouch(int action, MotionEvent event) {
action= event.getAction();
if(action == MotionEvent.ACTION_DOWN){
zoomControler+=10;
}
invalidate();
return true;
}
}
Soluzione
hi evento ontouch non è un bene per le immagini di zoom
in modo da utilizzare onkeylistener
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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow