Android 手勢放大圖片
阿新 • • 發佈:2018-12-12
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(); } }); } }