Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. class IV extends ImageView {
  2. Drawable marker;
  3. ScaleGestureDetector sgd;
  4. GestureDetector gd;
  5. Bitmap bitmap;
  6.  
  7. public IV(Context context) {
  8. super(context);
  9. /*
  10. // R.drawable.ic_marker
  11. <vector xmlns:android="http://schemas.android.com/apk/res/android"
  12. android:width="24dp" android:height="24dp"
  13. android:viewportWidth="16.0" android:viewportHeight="16.0"
  14. >
  15. <path android:fillColor="#b3b3b3" android:pathData="M7,0h2v3h-2z"/>
  16. <path android:fillColor="#b3b3b3" android:pathData="M7,12 L8,9 9,12 9,16 7,16z"/>
  17. <path android:fillColor="#b3b3b3" android:pathData="M16,7 L16,9 12,9 9,8 12,7z"/>
  18. <path android:fillColor="#b3b3b3" android:pathData="M4,7 L7,8 4,9 0,9 0,7z"/>
  19. <path android:fillColor="#008000" android:pathData="M8,3C5.239,3 3,5.239 3,8C3,10.761 5.239,13 8,13C10.761,13 13,10.761 13,8C13,5.239 10.761,3 8,3zM8,5C9.657,5 11,6.343 11,8C11,9.657 9.657,11 8,11C6.343,11 5,9.657 5,8C5,6.343 6.343,5 8,5z"/>
  20. </vector>
  21. */
  22. marker = VectorDrawableCompat.create(getResources(), R.drawable.ic_marker, null);
  23. bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.chrome);
  24. setImageBitmap(bitmap);
  25. setScaleType(ScaleType.MATRIX);
  26. sgd = new ScaleGestureDetector(context, listener1);
  27. gd = new GestureDetector(context, listener2);
  28. }
  29.  
  30. @Override
  31. protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  32. int size = w / 4;
  33. marker.setBounds(0, 0, size, size);
  34. Matrix m = new Matrix();
  35. RectF src = new RectF(0, 0, bitmap.getWidth(), bitmap.getHeight());
  36. RectF dst = new RectF(0, 0, w, h);
  37. m.setRectToRect(src, dst, Matrix.ScaleToFit.CENTER);
  38. setImageMatrix(m);
  39. }
  40.  
  41. ScaleGestureDetector.OnScaleGestureListener listener1 = new ScaleGestureDetector.SimpleOnScaleGestureListener() {
  42. @Override
  43. public boolean onScale(ScaleGestureDetector detector) {
  44. Matrix m = getImageMatrix();
  45. float scale = detector.getScaleFactor();
  46. m.postScale(scale, scale, detector.getFocusX(), detector.getFocusY());
  47. invalidate();
  48. return true;
  49. }
  50. };
  51. GestureDetector.OnGestureListener listener2 = new GestureDetector.SimpleOnGestureListener() {
  52. @Override
  53. public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
  54. Matrix m = getImageMatrix();
  55. m.postTranslate(-distanceX, -distanceY);
  56. invalidate();
  57. return true;
  58. }
  59. };
  60.  
  61. @Override
  62. public boolean onTouchEvent(MotionEvent event) {
  63. sgd.onTouchEvent(event);
  64. gd.onTouchEvent(event);
  65. return true;
  66. }
  67.  
  68. @Override
  69. protected void onDraw(Canvas canvas) {
  70. super.onDraw(canvas);
  71.  
  72. // draw your markers here by calling:
  73. // Drawable#draw(Canvas);
  74. }
  75. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement