Как я могу уменьшить размер изображения, когда изображение падает сверху вниз?

Как я могу уменьшить размер изображения, когда изображение падает сверху вниз?

Я разработал процесс сверху вниз через ссылку ниже

Анимация макета Android снизу вверх и сверху вниз при нажатии ImageView

Но я столкнулся с одной проблемой. Как я могу уменьшить размер изображения, когда изображение падает сверху вниз?

Пожалуйста, дайте мне поделиться вашей идеей или ссылкой и кодом.

Пожалуйста, смотрите мое требование на изображении ниже.

2 ответа

Решение

Вы можете применить масштабное преобразование к этому представлению.

Matrix matrix = new Matrix();
matrix.setScale(valueX, valueY);
view.setTransform(matrix); 

Для imageView

imageView.setImageMatrix(matrix);

Я решил свой вопрос. Надеюсь, всем понравится.

1. Создайте anim / zoom_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:fillAfter="true">
<scale
    android:duration="5000"
    android:fromXScale="100%"
    android:fromYScale="100%"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="50%"
    android:toYScale="50%" />

<translate
    android:duration="5000"
    android:fromYDelta="10%"
    android:toYDelta="50%" />

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<ImageView android:id="@+id/imgvw"
    android:layout_width="wrap_content"
    android:layout_height="250dp"
    android:src="@mipmap/ic_launcher"/>
<Button
    android:id="@+id/btnZoomIn"
    android:layout_below="@+id/imgvw"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Zoom In" android:layout_marginLeft="100dp" />
<Button
    android:id="@+id/btnZoomOut"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/btnZoomIn"
    android:layout_toRightOf="@+id/btnZoomIn"
    android:text="Zoom Out" />
</RelativeLayout>

3.MainActivity.java файл

public class MainActivity extends AppCompatActivity {
private Button btnzIn;
private Button btnzOut;
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnzIn = (Button)findViewById(R.id.btnZoomIn);
    btnzOut = (Button)findViewById(R.id.btnZoomOut);
    img = (ImageView)findViewById(R.id.imgvw);
  /*  btnzIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

          //  img.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(),R.anim.zoom_in));
            img.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_down));
           // img.clearAnimation();
        }
    });*/
    btnzOut.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        //    img.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_up));
            img.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(),R.anim.zoom_out));

        }
    });
}
Другие вопросы по тегам