仅在ImageView中移动位图

时间:2015-08-24 11:24:50

标签: android

我有一个在xml中设置黑色背景的ImageView,在代码中我将位图放在imageView.setImageBitmap(bitmap);

您可以在ScaleType.CENTER_CROPScaleType.CENTER_INSIDE之间进行选择。

如果选择了ScaleType.CENTER_INSIDE,则位图小于ImageView,并且黑色背景可见。

我想在屏幕上只移动位图。我尝试使用此代码,但它移动整个ImageView,而不仅仅是ImageView中的位图。

imageView.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                int eid = event.getAction();
                switch (eid) {
                    case MotionEvent.ACTION_MOVE:
                        RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
                        int x = (int) event.getRawX();
                        int y = (int) event.getRawY();
                        layoutParams.leftMargin = x - 50;
                        layoutParams.topMargin = y - 100;
                        imageView.setLayoutParams(layoutParams);
                        break;
                    default:
                        break;
                }
                return true;
            }
        });

有没有办法只移动ImageView里面的位图?

此外,我想增加和减少位图的宽度和高度,并保持位图的宽高比。

我试过这个,但它不起作用:

buttonIncrease.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
                layoutParams.width = (int) ((layoutParams.width + 10) * scale + 0.5f);
                layoutParams.height = (int) ((layoutParams.height + 10) * scale + 0.5f);
            }
        });

0 个答案:

没有答案