0

我想要什麼:如何在用作相機預覽的SurfaceView上疊加自定義繪圖?

我想打一個Camera活動(即,顯示相機預覽的活動),其中一個方形(它實際上是一個有點複雜的形狀,但我要說的方簡單)覆蓋在相機預覽上,使得用戶知道將相機放置在何處,使得特定的正方形形狀的真實物體定位在覆蓋在相機預覽上的該正方形內。

就像在下面的圖像中的相機預覽中有一個臉形,以便用戶可以把他們的臉放在那裏。

enter image description here

我的解決方案:

我想有一個FrameLayout,然後有SurfaceView相機預覽和形狀的VectorDrawable的將被覆蓋,爲FrameLayout將Z序其子女VectorDrawable最終將被覆蓋在SurfaceView上。

與它的問題:

我需要我的應用程序與API 11及以上版本兼容。所以我不得不使用VectorDrawableCompat。要使用VectorDrawableCompat,我們需要設置一個AAPT標誌。 - source

問題是,無處不在網上,設置此標誌的方式是Android Studio。 (如here所述的方法)幾行將被添加到項目的build.gradle文件中。

我無法知道如何在Eclipse中設置此標誌。我繼續搜索,最終安裝了Eclipse Buildship插件以在Eclipse中使用Gradle。我跟着this guide。當我將Gradle特性添加到Android項目中時,我確實收到了build.gradle文件。我粘貼了代碼來啓用它的AAPT標誌,但它根本沒有幫助我解決問題。

因此,現在我正在尋找替代方法來實現我的任務。請告訴我如何在不使用VectorDrawableCompat的情況下做到這一點?

+1

你爲什麼不使用PNG文件,而不是VectorDrawable? – nshmura

+0

因爲這對於不同的屏幕尺寸會有問題? @nshmura – Solace

+1

是的,但我認爲問題很少。我發佈了一個解釋的答案。 – nshmura

回答

1

我同意VectorDrawable比png文件好。 但我認爲PNG是可以接受的,因爲帶有dp大小的ImageView會自動縮放圖像。

這是例子:

<FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <SurfaceView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

    <ImageView 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:scaleType="fitXY" 
      android:src="@drawable/face_shape"/> 

</FrameLayout> 
+0

分貝大小?什麼是數據庫? – Solace

+0

圖像不會縮放像素化嗎? – Solace

+1

對不起!我錯了。這是dp大小 – nshmura

相關問題