如何在android中创建动态用户面部模型?

时间:2015-12-22 10:38:41

标签: android image-processing opengl-es

您好我想在android中创建动态用户面部模型并显示给用户。

我搜索并发现我需要用户不同角度的面部框架(图像),如14到16个图像,并且为了显示目的,需要使用opengl(用于平滑度)在用户手指滑动上更改图像(框架),使其看起来像3D图片。
但是我希望在每个帧中像(佩戴耳朵)一样编辑并向用户显示 https://lh3.googleusercontent.com/WLu3hm0nIhW5Ps9GeMS9PZiuc3n2B8xySKs1LfNTU1drOIqJ-iEvdiz-7Ww0ZX3ZtLk=h900

请给我一些建议或示例。

1 个答案:

答案 0 :(得分:0)

我希望你的图像适合记忆 您可以将每个图像的ImageView添加到FrameLayout,只让一个ImageView可见。 然后你甚至可以使用淡入/淡出动画来改善切换到下一张图像时的效果。

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));

<强>动画/ 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>

<强>动画/ 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

的更多信息