Andoid_ImageView图片的缩放

来源:互联网 发布:人工智能公司招聘 编辑:程序博客网 时间:2024/06/05 12:38
public class MainActivity extends Activity {    private Button local, network;    private ImageView iv;    RelativeLayout lay;    private float now;    private float last = -1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        iv = (ImageView) findViewById(R.id.imageView);        local = (Button) findViewById(R.id.local);        network = (Button) findViewById(R.id.network);        local.setOnClickListener(l);        network.setOnClickListener(l);        lay = (RelativeLayout) findViewById(R.id.lay);        lay.setOnTouchListener(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                // TODO Auto-generated method stub                switch (event.getAction()) {                    case MotionEvent.ACTION_DOWN:                        Log.d("TAG", "down!!!");                        break;                    case MotionEvent.ACTION_MOVE:                        Log.d("TAG", "move!!!");                        // 判断按下手指个数                        if (event.getPointerCount() >= 2) {                            float x = event.getX(0) - event.getX(1);                            float y = event.getY(0) - event.getY(1);                            now = (float) Math.sqrt(x * x + y * y);                            if (last < 0) {                                last = now;                            } else {                                if (now - last > 5) {                                    Log.d("TAG", "放大!");                                    RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) iv                                            .getLayoutParams();                                    lp.width = (int) (iv.getWidth() * 1.2);                                    lp.height = (int) (iv.getHeight() * 1.2);                                    iv.setLayoutParams(lp);                                    last = now;                                } else if (last - now > 5) {                                    Log.d("TAG", "缩小!");                                    RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) iv                                            .getLayoutParams();                                    lp.width = (int) (iv.getWidth() * 0.8);                                    lp.height = (int) (iv.getHeight() * 0.8);                                    if (lp.width > 0.1) {                                        iv.setLayoutParams(lp);                                    } else {                                        lp.width = 10;                                        lp.height = 10;                                        iv.setLayoutParams(lp);                                    }                                    last = now;                                }                            }                        }                        break;                    case MotionEvent.ACTION_UP:                        Log.d("TAG", "up!!!");                        break;                    default:                        break;                }                return true;            }        });    }    ;    View.OnClickListener l = new View.OnClickListener() {        @Override        public void onClick(View v) {            switch (v.getId()) {                case R.id.local:                    iv.setImageResource(R.drawable.sword);                    break;                case R.id.network:                    BitmapUtils utils = new BitmapUtils(getApplicationContext());                    utils.display(iv,"http://www.baidu.com/img/bd_logo1.png");                    break;            }            ;        }    };}
0 0
原创粉丝点击