【发布时间】:2015-10-08 14:42:12
【问题描述】:
谁能帮我用两根手指缩放(调整大小)图像?我有 frameLayout 并且我动态附加 imageViews。我想缩放图像。我可以在不使用 Matrix 的情况下解决这个问题吗?
移动工作正常我在 frameLayout 上移动图像。但缩放不知道。你能给我一些链接或图书馆如何解决这个问题吗?我找到了一些解决方案,但问题在于比例仅在 imageView 中起作用。框架布局和图像视图。 ImageView 必须有宽度和高度 fill_parent 并且你可以在这个 imageView 中缩放和移动图像。但我想在这个 FrameLayout 中缩放 ImageView。我放了我的代码,当我添加 3 张图像时,它工作正常,我可以单独处理这些图像。但我也需要调整大小。谢谢你的帖子
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_selected_images_per_category);
Intent intent = getIntent();
selectedImages = intent.getParcelableArrayListExtra("selectedImages");
relativeLayout = (FrameLayout) findViewById(R.id.customLayutForImages);
for(int i=0; i< selectedImages.size(); i++) {
ImageView mImageView = new ImageView(SelectedImagesActivity.this);
Uri u = selectedImages.get(i);
mImageView.setImageURI(u);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( 300,300 );
relativeLayout.addView(mImageView, params);
mImageView.setOnTouchListener(this);
}
enter code public boolean onTouch(View view, MotionEvent event) {
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
FrameLayout.LayoutParams lParams = (FrameLayout.LayoutParams) view.getLayoutParams();
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
mode = MOVE;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
mode = ZOOM;
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
if (mode == ZOOM) {
//WHAT TO DO HERE
}
if (mode == MOVE) {
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) view
.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
view.setLayoutParams(layoutParams);
}
break;
}
relativeLayout.invalidate();
return true;
}here
【问题讨论】: