我有一个在xml中设置黑色背景的ImageView,在代码中我将位图放在imageView.setImageBitmap(bitmap);
您可以在ScaleType.CENTER_CROP
和ScaleType.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);
}
});