У меня была та же проблема, было аналогичное решение, которое я представлю здесь при переполнении стека, но оно не работало правильно, хотя представления будут масштабироваться, они в конечном итоге перестанут возвращаться к своему первоначальному размеру.
Вот модифицированное исправление, которое я обнаружил для себя, что до сих пор работает нормально и не вызывает никаких проблем.
В res / anim создайте файл grow.xml измените размеры масштабирования на те, которые вам подходят
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1.0"
android:toXScale="1.075"
android:fromYScale="1.0"
android:toYScale="1.075"
android:duration="150"
android:pivotX="50%"
android:pivotY="50%"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fillAfter="true">
</scale>
Скопируйте этот класс и поместите его в унаследованную галереюили прямо в вашей деятельности
private class SelectListener implements AdapterView.OnItemSelectedListener {
private Animation grow = null;
private View lastView = null;
public SelectListener(Context c) {
grow = AnimationUtils.loadAnimation(c, R.anim.grow);
}
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
// Shrink the view that was zoomed
try { if (null != lastView) lastView.clearAnimation();
} catch (Exception clear) { }
// Zoom the new selected view
try { v.startAnimation(grow); } catch (Exception animate) {}
// Set the last view so we can clear the animation
lastView = v;
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
Затем, после того как вы создали свой класс галереи и подключили адаптер, вызовите
yourGalleryName.setOnItemSelectedListener(new SelectListener(this));
Это сработало для меня, дайте мне знать, если это будет для вас какхорошо.