1. 程式人生 > >Android 手勢放大圖片

Android 手勢放大圖片

public class ImageActivity extends AppCompatActivity {
    private int mode;
    private ImageView imageView_back,image;
    private TextView tv_title;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image);
        initView();
        initEvent();
    }

    /**
     * 手勢監聽事件
     * @param event
     * @return
     */
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()&event.getActionMasked()){
            case MotionEvent.ACTION_DOWN:
                mode=1;
                break;
            case MotionEvent.ACTION_POINTER_DOWN:
                mode=2;
                break;
            case MotionEvent.ACTION_MOVE:
                if (mode==2){
                   try {
                       float x=event.getX(0);
                       float x1=event.getX(1);
                       float y=event.getY(0);
                       float y1=event.getY(1);
                       double distance=Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
                       ViewGroup.LayoutParams layoutParams=image.getLayoutParams();
                       layoutParams.height= (int) distance;
                       layoutParams.width= (int) distance;
                       image.setLayoutParams(layoutParams);


                   }catch (Exception ignored){

                   }
                }
                break;
        }

        return super.onTouchEvent(event);
    }

    /**
     * 初始化佈局
     */
    private void initView() {
        imageView_back = (ImageView) findViewById(R.id.imageView_back);
        tv_title = (TextView) findViewById(R.id.tv_title);
        tv_title.setText(getIntent().getStringExtra("title"));
        image = (ImageView) findViewById(R.id.image);

        HttpRequest.bitmap(ImageActivity.this,getIntent().getStringExtra("url"), new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap bitmap) {
                image.setImageBitmap(bitmap);
            }
        },null);
    }

    /**
     * 監聽事件
     */
    private void initEvent(){
        imageView_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}