gpt4 book ai didi

android - 在 FrameLayout 中缩放 ImageView ontouch

转载 作者:行者123 更新时间:2023-11-29 01:27:40 25 4
gpt4 key购买 nike

任何人都可以帮助我用 2 根手指触摸缩放(调整大小)图像吗?我有 frameLayout 并且我动态附加 imageViews。我想缩放图像。我可以不使用 Matrix 解决这个问题吗?

移动工作正常 我在 frameLayout 上移动图像。但是缩放不知道。你能给我一些链接或库如何解决这个问题吗?我找到了一些解决方案,但问题是比例只能在 imageView 中工作。框架布局和 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

最佳答案

使用 ScaleGestureDetector 查看此文档

如果没有,你可以使用这个 library

关于android - 在 FrameLayout 中缩放 ImageView ontouch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com