Как перевернуть изображения, как 3D-анимации в Android? - PullRequest
1 голос
/ 01 декабря 2011

у меня есть изображения в 3d, например, 1-10 изображений

, в которых у меня есть (1-5) изображения спереди назад в 3d-форме левой стороны и аналогично спереди назад правой правой части (6-10)

если мы посмотрим на них, сформирована полная трехмерная фигура, я хочу использовать их с проведением пальцем влево и вправо, чтобы отображался полный трехмерный вид этого изображения.

я виделэтот пример, но это далеко от моего взгляда флиппер и проведите пальцем.http://www.inter -fuser.com / 2009/08 / android-animations-3d-flip.html

кто-нибудь подскажет, как этого добиться?

любая помощьбыл бы признателен.

Ответы [ 2 ]

3 голосов
/ 31 января 2012

Вы можете добавить реалистичный 3D-флип-переход, используя библиотеку 3D-флип Рагхава Чопры https://code.google.com/p/android-3d-flip-view-transition.

При этом все, что вам нужно сделать, это вместо того, чтобы звонить flipper.showNext();, звонить AnimationFactory.flipTransition(flipper, FlipDirection.LEFT_RIGHT); и высделанный.3D-анимация довольно крутая.

Многие другие учебные пособия и примеры кодов (включая тот, который вы используете) не дают правдоподобных 3D-сальто.Простого поворота по оси Y недостаточно, поэтому взгляните на приведенную выше строку (или это видео http://youtu.be/52mXHqX9f3Y).

. Если вы хотите, чтобы он автоматически переходил, просто добавьте Handler, например:

Handler handler = new Handler();
...
handler.postDelayed(new Runnable() {
    AnimationFactory.flipTransition(flipper, FlipDirection.LEFT_RIGHT);
}, 500);

Выше будет продолжать пролистывать изображения бесконечно (циклически возвращаясь к первому изображению в конце). Чтобы остановить автоматический переход, вы добавляете логический флаг, который вы проверяете перед началом переворота, илисохраните Runnable, который вы используете, и наберите handler.removeCallbacks(runnable).

0 голосов
/ 01 декабря 2011

xml для переворачивания

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/flip_me"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Flip Me!"
/>
<ViewFlipper android:id="@+id/details"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FF00FF00"
android:text="This is the first panel"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FFFF0000"
android:text="This is the second panel"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FFFFFF00"
android:text="This is the third panel"
/>
</ViewFlipper>
</LinearLayout>

Java Filee

public class FlipperDemo extends Activity {
ViewFlipper flipper;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
flipper=(ViewFlipper)findViewById(R.id.details);
Button btn=(Button)findViewById(R.id.flip_me);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.showNext();
}
});
}
}

это ручное переключение

Результат - тривиальное действие: нажмите кнопку, и следующий текстовый вид в последовательности отображается, переходя к первому после просмотра последнего

...