У меня есть Activity
, содержащий вид Gallery
. Я определил onItemSelectedListener
на Gallery
, так что всякий раз, когда выбран элемент, я применяю масштабную анимацию к текущему выбранному виду. Слушатель и масштабирование работают в значительной степени, как ожидалось, за исключением одной проблемы.Галерея изображений в галерее изображений в масштабе галереи
Когда я определил Галерею, я установил атрибут spacing
, однако после масштабирования представления интервал не устанавливается должным образом. См. Изображение ниже в качестве примера проблемы.
Любые мысли о том, как я могу поддерживать правильный интервал?
Ниже приведены фрагменты кода:
main.xml
<Gallery
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/featured_gallery"
android:layout_width="1355px"
android:layout_height="490px"
android:layout_gravity="center"
android:spacing="5px"
android:layout_marginTop="70dp"
/>
feature_selected.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="100"
android:pivotX="50%"
android:pivotY="50%"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fillAfter="true">
</scale>
onItemSelectListener
private class FeaturedSelectListener implements AdapterView.OnItemSelectedListener {
private Animation grow = null;
private View lastView = null;
public FeaturedSelectListener(Context c) {
grow = AnimationUtils.loadAnimation(c, R.anim.featured_selected);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, 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 {
view.startAnimation(grow);
} catch (Exception animate) {
}
// Set the last view so we can clear the animation
lastView = view;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
Вы пытались установить как левое, так и правое поле на выбранном изображении? возможно, это может вам помочь. – Andreas
Я просто пробовал, и, к сожалению, это не сработало. Если я удалю pivotX из анимации, то в левой части масштабированного представления есть интервал, но не правильный. Элементы справа не перемещаются должным образом. – Steve
Привет, Стив, мне нужно сделать такую же анимацию в Галерее, если вы достигнете этого, можете ли вы отправить мне код, пожалуйста? – Hasmukh