android点击实现图片放大缩小

来源:互联网 发布:软件模块化设计 编辑:程序博客网 时间:2024/05/12 07:12
mainactivity类
Java代码 复制代码 收藏代码
  1. package com.example.androidsvg;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.Menu;
  5. public class MainActivityextends Activity {
  6. private static final double ZOOM_IN_SCALE = 1.25;//放大系数
  7. private static final double ZOOM_OUT_SCALE = 0.8;//缩小系数
  8. @SuppressWarnings("null")
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(new Zoom(this));
  13. }
  14. @Override
  15. public boolean onCreateOptionsMenu(Menu menu) {
  16. // Inflate the menu; this adds items to the action bar if it is present.
  17. getMenuInflater().inflate(R.menu.activity_main, menu);
  18. return true;
  19. }
  20. }


Zoom类
Java代码 复制代码 收藏代码
  1. package com.example.androidsvg;
  2. import android.view.View;
  3. import android.content.Context;
  4. import android.graphics.Canvas;
  5. import android.graphics.drawable.Drawable;
  6. import android.view.KeyEvent;
  7. public class Zoom extends View {
  8. private Drawable image;
  9. private int zoomControler=20;
  10. public Zoom(Context context){
  11. super(context);
  12. image=context.getResources().getDrawable(R.drawable.icon);
  13. setFocusable(true);
  14. }
  15. @Override
  16. protected void onDraw(Canvas canvas) {
  17. // TODO Auto-generated method stub
  18. super.onDraw(canvas);
  19. //控制图像的宽度和高度
  20. image.setBounds((getWidth()/2)-zoomControler, (getHeight()/2)-zoomControler, (getWidth()/2)+zoomControler, (getHeight()/2)+zoomControler);
  21. image.draw(canvas);
  22. }
  23. @Override
  24. public boolean onKeyDown(int keyCode, KeyEvent event) {
  25. if(keyCode==KeyEvent.KEYCODE_DPAD_UP)//放大
  26. zoomControler+=10;
  27. if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN) //缩小
  28. zoomControler-=10;
  29. if(zoomControler<10)
  30. zoomControler=10;
  31. invalidate();
  32. return true;
  33. }
  34. }  
原创粉丝点击