Android 将FrameLayout中的ImageView缩放到Touch上

Android 将FrameLayout中的ImageView缩放到Touch上,android,scale,Android,Scale,有人能帮我用两个手指缩放触摸屏上的图像吗?我有frameLayout和动态附加ImageView。我想缩放图像。我能不使用矩阵解决这个问题吗 在frameLayout上移动图像时,移动操作正常。但是我不知道。你能给我一些链接或库怎么解决?我找到了一些解决方案,但问题是这个比例只在imageView中起作用。framelayout和imageView。ImageView必须具有宽度和高度填充,并且您可以在此ImageView中缩放和移动图像。但我希望在这个框架布局中缩放ImageView。我把我的

有人能帮我用两个手指缩放触摸屏上的图像吗?我有frameLayout和动态附加ImageView。我想缩放图像。我能不使用矩阵解决这个问题吗

在frameLayout上移动图像时,移动操作正常。但是我不知道。你能给我一些链接或库怎么解决?我找到了一些解决方案,但问题是这个比例只在imageView中起作用。framelayout和imageView。ImageView必须具有宽度和高度填充,并且您可以在此ImageView中缩放和移动图像。但我希望在这个框架布局中缩放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
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u选定的图像\u每个类别);
Intent=getIntent();
selectedImages=intent.getParcelableArrayListExtra(“selectedImages”);
relativeLayout=(FrameLayout)findViewById(R.id.CustomLayoutForImages);
对于(int i=0;i
使用


如果没有,您可以使用此

我使用了第二个库,我使用了thant示例,图像缩放正常,但在我离开屏幕时放大或缩小后仍会返回默认分辨率。当手指离开屏幕时,图像将返回默认分辨率。这是否正常,或者我需要添加一些内容?也许sameWell此库可以帮助您放大你所要求的是根据放大和缩小来调整图像的大小,如果你想实现这一点,你还需要其他东西。