2015-12-22 26 views
13

你好,我想在android中創建動態用戶臉部模型並向用戶顯示。如何在android中創建動態用戶臉部模型?

我已經搜索並發現,我需要用戶不同角度的臉部框架(圖像)像14到16個圖像,並且爲了顯示目的,需要在用戶手指上使用opengl(用於平滑)更改圖像(框架) 3D圖像。
但我想喜歡一些編輯像(戴抽穗)在每一幀顯示給用戶像 https://lh3.googleusercontent.com/WLu3hm0nIhW5Ps9GeMS9PZiuc3n2B8xySKs1LfNTU1drOIqJ-iEvdiz-7Ww0ZX3ZtLk=h900

請給我一些建議或例子就可以了。

+0

我不明白你的問題......聽起來像你想創建一個允許用戶拍攝一堆照片的應用程序,然後以某種方式將它們全部以動畫形式顯示出來,並可以像耳環一樣向圖像添加一些內容...您希望如何他們能夠添加東西?他們是否需要提供耳環的14至16張照片,或者您將預先加載這些照片?你在尋找什麼樣的例子?你想要一個已經完成你所描述的應用程序的例子嗎? – pabrams

+0

如果您在我的問題中看到我共享的圖像,那麼您會發現她穿着耳朵的一個女孩圖像(Earing是動態物體)並且臉部移動180度,以便我可以在3D模型中看到兩個耳飾。 「 – Hits

回答

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

+0

如果你的圖像不適合內存,你將不得不在背景中加載它們,同時改變角度,這可能會導致一些滯後。所以也許最好是跳過一些圖像或使用不同的方法(低質量的RGB565,較小的分辨率)。 –

相關問題