Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ImageView收缩到缩放,位于图像翻转器内部_Android_Android Imageview - Fatal编程技术网

Android ImageView收缩到缩放,位于图像翻转器内部

Android ImageView收缩到缩放,位于图像翻转器内部,android,android-imageview,Android,Android Imageview,我正在用android开发应用程序,它在Flipper的图像视图中显示一些预设图像。我想在收缩缩放时实现对该图像视图的缩放。我已经实现了flipper和swipe movemet以在滑动手势时更改图像视图。现在,我要实现从收缩到缩放。 这里是活动的xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/

我正在用android开发应用程序,它在Flipper的图像视图中显示一些预设图像。我想在收缩缩放时实现对该图像视图的缩放。我已经实现了flipper和swipe movemet以在滑动手势时更改图像视图。现在,我要实现从收缩到缩放。 这里是活动的xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ffffffff"
        android:orientation="vertical" >

        <ViewFlipper
            android:id="@+id/view_flipper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/textView1"
                    style="@style/ImageTitle"
                    android:layout_height="wrap_content"
                    android:text="Alto 800" />

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:layout_gravity="center"
                    android:adjustViewBounds="true"
                    android:scaleType="matrix"
                    android:src="@drawable/alto800" />

            </RelativeLayout>

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:layout_gravity="center"
                    android:adjustViewBounds="true"
                    android:scaleType="matrix"
                    android:src="@drawable/cheveroletbeat" />

                <TextView
                    style="@style/ImageTitle"
                    android:text="Cheverolet Beat" />
            </RelativeLayout>
 </ViewFlipper>
请在这里指导我如何使用“收缩到缩放”部分。

请参阅我的答案
   public class MainActivity extends Activity {

        private static final int SWIPE_MIN_DISTANCE = 120;
        private static final int SWIPE_THRESHOLD_VELOCITY = 200;
        private ViewFlipper mViewFlipper;
        private Context mContext;
        public MediaPlayer mp ;
        @SuppressWarnings("deprecation")
        private final GestureDetector detector = new GestureDetector(
                new SwipeGestureDetector());

        int flag = 1;


        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mp = MediaPlayer.create(getBaseContext(), R.raw.funtime);
            mp.setLooping(true);
            mp.start();

            mContext = this;

            mViewFlipper = (ViewFlipper) this.findViewById(R.id.view_flipper);
            mViewFlipper.setOnTouchListener(new OnTouchListener() {
                @Override
                public boolean onTouch(final View view, final MotionEvent event) {
                    detector.onTouchEvent(event);
                    return true;
                }
            });
   }@Override
        public void onDestroy()
        {
            super.onDestroy();
            mp.stop();
        }

        class SwipeGestureDetector extends SimpleOnGestureListener implements
                OnGestureListener {

            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                    float velocityY) {

                try {
                    // right to left swipe
                    if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
                            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                        mViewFlipper.setInAnimation(AnimationUtils.loadAnimation(
                                mContext, R.anim.right_in));
                        mViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(
                                mContext, R.anim.left_out));
                        mViewFlipper.showNext();
                        MediaPlayer mediaPlayer = MediaPlayer.create(
                                getBaseContext(), R.raw.vroom);
                        mediaPlayer.start();
                        return true;
                    } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
                            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                        mViewFlipper.setInAnimation(AnimationUtils.loadAnimation(
                                mContext, R.anim.left_in));
                        mViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(
                                mContext, R.anim.right_out));

                        mViewFlipper.showPrevious();
                        MediaPlayer mediaPlayer = MediaPlayer.create(
                                getBaseContext(), R.raw.vroom);
                        mediaPlayer.start();
                        return true;
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }

                return false;
            }
        }
    }