我需要添加一个图标来在我的cameraSource上拍照,但我正在使用自定义库(由第三人开发)。我的图标需要在cameraSourcePreview标签内。
private Context mContext;
private SurfaceView mSurfaceView;
private boolean mStartRequested;
private boolean mSurfaceAvailable;
private CameraSource mCameraSource;
private GraphicOverlay mOverlay;
public CameraSourcePreview(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
mStartRequested = false;
mSurfaceAvailable = false;
mSurfaceView = new SurfaceView(context);
mSurfaceView.getHolder().addCallback(new SurfaceCallback());
addView(mSurfaceView);
}
我尝试放入我的xml,但它不起作用。
我的xml
<LinearLayout
android:id="@+id/topLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
<com.example.aveek.barcodescanner.ui.CameraSourcePreview
android:id="@+id/preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center">
<pl.droidsonroids.gif.GifImageView
android:id="@+id/qr_image"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:gravity="center"
android:keepScreenOn="true" />
<com.example.aveek.barcodescanner.ui.GraphicOverlay
android:id="@+id/graphicOverlay"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.example.aveek.barcodescanner.ui.CameraSourcePreview>
<android.support.design.widget.FloatingActionButton
android:src="@drawable/ic_settings_black_24dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
我有这个丑陋的设计:
我怎么能这样做?我也尝试将SuurfaceView更改为FrameLayout。
答案 0 :(得分:1)
试试这个 - 将父视图从LinearLayout更改为RelativeLayout,以便您可以在其他视图(CameraSourcePreview)的TOP上放置一个View(按钮)(。
<RelativeLayout
android:id="@+id/topLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
<com.example.aveek.barcodescanner.ui.CameraSourcePreview
android:id="@+id/preview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_gravity="center">
<pl.droidsonroids.gif.GifImageView
android:id="@+id/qr_image"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:gravity="center"
android:keepScreenOn="true" />
<com.example.aveek.barcodescanner.ui.GraphicOverlay
android:id="@+id/graphicOverlay"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.example.aveek.barcodescanner.ui.CameraSourcePreview>
<android.support.design.widget.FloatingActionButton
android:src="@drawable/ic_settings_black_24dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alignParentBottom="true"
android:layout_marginBottom="20dp"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>