2015-03-18 11 views
6

Wie kann ich eine kreisförmige/ovale oder runde Kameravorschau erstellen (der Kreis in der Mitte sollte eine Kameravorschau sein)?Android: Wie man eine kreisförmige Kameravorschau macht?

enter image description here

Das London Bild repräsentiert Rest der ui mit den Tasten und Ansichten, so es sichtbar ganze sein muss und deshalb habe ich keine Lösungen hinzufügen, android:background mit Radius wie diese als Form Rechteck verwenden können:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#FFFFFF"/> 
    <stroke android:width="3dip" android:color="#B1BCBE" /> 
    <corners android:radius="50dip"/> 
    <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> 
</shape> 

und wenn ich versuche android:background als oval xml auf die Surface zu setzen, funktioniert es nicht entweder:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 

    <size 
     android:width="120dp" 
     android:height="120dp"/> 

    <stroke 
     android:color="#FF000000" 
     android:width="2dp" /> 
</shape> 

Wenn es irgendwie möglich ist, SurfaceView zu erweitern und zu verwenden, was sollte ich bitte umschreiben?

Antwort

0

hmm ich denke, der einfachste Weg, um einen Imageview auf Ihre Surface Beispiel durch xml gesetzt ist:

<RelativeLayout ....> 
    <SurfaceView ... /> 
    <ImageView ... /> 
</RelativeLayout> 
+0

das Hintergrundbild (London) meine UI darstellt, diese Dinge im Hintergrund sein. –

+1

Warum müssen sie im Hintergrund sein? Warum können Sie mit diesem ImageView kein transparentes kreisförmiges Loch erzeugen und die SurfaceView-Oberfläche durchscheinen lassen? (Oder verwenden Sie einfach auf der SurfaceView-Ansicht, die nichts als ein transparentes Rechteck ist.) – fadden

+0

oops Entschuldigung zu erwähnen, enthalten die Bildansicht ein Bild mit einem transparenten Kreis, könnten Sie ein PNG-Bild verwenden –