Подтвердить что ты не робот

Как создать динамическую модель лица пользователя в Android?

Здравствуйте, я хочу создать динамическую модель лица пользователя в Android и показать пользователю.

Я искал и обнаружил, что мне нужны пользовательские рамки с разными углами (изображения), например, от 14 до 16 изображений, и для отображения целей необходимо изменить изображения (кадр) с помощью opengl (для гладкости) на пальце пользователя, чтобы он выглядел как 3D Образ.
Но я хочу, чтобы какое-то редактирование понравилось (носить уши) в каждом кадре и отображалось пользователю как https://lh3.googleusercontent.com/WLu3hm0nIhW5Ps9GeMS9PZiuc3n2B8xySKs1LfNTU1drOIqJ-iEvdiz-7Ww0ZX3ZtLk=h900

Пожалуйста, дайте мне какое-нибудь предложение или пример.

4b9b3361

Ответ 1

Я ожидаю, что ваши изображения будут вписываться в память.
Вы можете добавить ImageView для каждого изображения в FrameLayout и позволить только одному ImageView быть видимым. Затем вы можете использовать анимацию fade in/fade для улучшения эффекта при переключении на следующее изображение.

ImageView[] imageViews;
int currentView = 0;

...

// fill imageViews

...

ImageView image1 = imageViews[currentView];

if (moveRight) {
    if (++currentView >= imageViews.length) currentView = 0;
} else {
    if (--currentView < 0) currentView = imageViews.length - 1;
}

ImageView image2 = imageViews[currentView];

image1.setVisibility(View.INVISIBLE);
image1.startAnimation(AnimationUtils.loadAnimation(context, R.anim.fade_out));
image2.setVisibility(View.VISIBLE);
image2.startAnimation(AnimationUtils.loadAnimation(context, R.anim.fade_in));

Anim/fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator">
    <alpha
        android:duration="150"
        android:fromAlpha="0.0"
        android:toAlpha="1.0"/>
</set>

Anim/fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator">
    <alpha
        android:duration="150"
        android:fromAlpha="1.0"
        android:toAlpha="0.0"/>
</set>

Об аппаратном ускорении, я думаю, в этом случае Android может справиться с этим для вас. С Android 3.0 вы можете определить его в манифесте для приложения или активности:

android:hardwareAccelerated="true"

В качестве альтернативы вы можете установить его только для определенных видов.

Использование XML:

android:layerType="hardware"

Использование Java:

view.setLayerType(View.LAYER_TYPE_HARDWARE, null);

Здесь вы можете найти дополнительную информацию о Hardware Acceleration