Note that there are some explanatory texts on larger screens.

plurals
  1. POHow can I zoom in bitmap without using matrix?
    primarykey
    data
    text
    <p>How can I zoom the image without using matrix in android?</p> <p>Here is the code that I am using:</p> <pre><code>public class SimpImageView extends BaseView{ private Bitmap image = null; private Paint borderPaint = null; PointF start = new PointF(); PointF lastPosition = new PointF(); Matrix savedMatrix = new Matrix(); private Paint imagePaint = null; private Matrix matrix = null; public Bitmap getImage() { return image; } public void setImage(Bitmap image) { this.image = image; } public SimpImageView(Bitmap image,int x,int y,int width,int height){ super(x, y, width, height); this.image = image; borderPaint = new Paint(); borderPaint.setARGB(255, 255, 128, 128); borderPaint.setStyle(Paint.Style.STROKE); borderPaint.setStrokeWidth(2); imagePaint = new Paint(); imagePaint.setARGB(32, 255, 255, 255); imagePaint.setStyle(Paint.Style.FILL); } /* (non-Javadoc) * @see com.simplogics.surfaceview.Views.BaseView#onDraw(android.graphics.Canvas) */ @Override public void onDraw(Canvas canvas) { // TODO Auto-generated method stub canvas.drawBitmap(image, getBounds().left, getBounds().top, null); // canvas.drawBitmap(image, matrix, new Paint()); // canvas.drawBitmap(image, matrix, borderPaint); // canvas.drawRect(getBounds() , borderPaint); } /* (non-Javadoc) * @see com.simplogics.surfaceview.Views.BaseView#onTouchEvent(android.view.MotionEvent) */ static final int NONE = 0; static final int DRAG = 1; static final int ZOOM = 2; int mode = NONE; @Override public boolean onTouchEvent(MotionEvent event) { boolean handled = false; Log.d("SimpEditText", "(int)event.getX() " + (int)event.getX()); Log.d("SimpEditText", "(int)event.getY() " + (int)event.getY()); if(isTouchedInBounds((int)event.getX(), (int)event.getY())){ Log.d("SimpEditText", "Touched in Bounds"); handled = true; switch (event.getAction() &amp; MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: start.set(event.getX(), event.getY()); lastPosition.x = getBounds().left; lastPosition.y = getBounds().top; Log.d("VerticalLabelView", "mode=DRAG"); mode = DRAG; break; case MotionEvent.ACTION_POINTER_DOWN: mode = ZOOM; Log.d("VerticalLabelView", "mode=ZOOM"); break; case MotionEvent.ACTION_UP: mode = NONE; break; case MotionEvent.ACTION_POINTER_UP: mode = NONE; Log.d("VerticalLabelView", "mode=NONE"); break; case MotionEvent.ACTION_MOVE: if (mode == DRAG) { int x = (int)(event.getX() - start.x); int y = (int)(event.getY() - start.y); setPosition((int)lastPosition.x + x, (int)lastPosition.y + y); mode = DRAG; break; }else if(mode == ZOOM){ Log.d("SimpImageView", "MODE=ZOOM"); Log.d("SimpImageView", "getImage().getWidth()="+getImage().getWidth()); Log.d("SimpImageView"," getImage().getHeight()="+getImage().getHeight()); } break; } } return handled; } } </code></pre> <p>baseView.java</p> <pre><code>public abstract class BaseView { private int id = -1; private Object tag = null; private Rect bounds = null; public Rect getBounds() { return bounds; } public BaseView() { bounds = new Rect(); } public BaseView(int x, int y, int width, int height) { bounds = new Rect(x, y, x + width, y + height); } public abstract void onDraw(Canvas canvas); public abstract boolean onTouchEvent(MotionEvent event); public void setBounds(int x, int y, int width, int height){ bounds.set(x, y, x + width, y + height); } public void setPosition(int x, int y){ if(x &lt;= 0 || y &lt;= 0){ Log.e("SimpEditText1", "----------------------------------------------------------"); Log.e("SimpEditText1", "-------------0000000000000000000000000000000000------------"); Log.e("SimpEditText1", "----------------------------------------------------------"); } bounds.set(x, y, x + bounds.width(), y + bounds.height()); } public void setScale(int x,int y,int width,int height){ bounds.set(x, y, x + bounds.width()+width, y + bounds.height()+height); } protected boolean isTouchedInBounds(int xPos, int yPos){ return bounds.contains(xPos, yPos); } public Object getTag() { return tag; } public void setTag(Object tag) { this.tag = tag; } public int getId() { return id; } public void setId(int id) { this.id = id; } /** * @param w * @param h * @param oldw * @param oldh */ } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload