如何添加按钮,相机preVIEW的Andr​​oid? [英] how to Add button to the camera preview android?

查看:178
本文介绍了如何添加按钮,相机preVIEW的Andr​​oid?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发的摄影应用我requrement是叠加效果,摄像头preVIEW为我开发了code.in这个code I图像叠加到surfaceview。

I am developing photography app my requrement is overlay effects to camera preview for that i developed code.in this code i overlay image to the surfaceview.

public class OverlayLiveCamera extends Activity {
       Camera camera;
       LayoutInflater controlInflater = null;
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);

            Preview mPreview = new Preview(this);
            DrawOnTop mDraw = new DrawOnTop(this);
            setContentView(mPreview);
            addContentView(mDraw, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        }


       class Preview extends SurfaceView implements SurfaceHolder.Callback{

            SurfaceHolder mHolder;



            Preview(Context context) {
                super(context);
                // Install a SurfaceHolder.Callback so we get notified when the
                // underlying surface is created and destroyed.
                mHolder = getHolder();
                mHolder.addCallback(this);
                mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            }



            public void surfaceCreated(SurfaceHolder holder) {
                // The Surface has been created, acquire the camera and tell it where
                // to draw.
                camera = Camera.open();
                try {
                    camera.setPreviewDisplay(holder);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            public void surfaceDestroyed(SurfaceHolder holder) {
                // Surface will be destroyed when we return, so stop the preview.
                // Because the CameraDevice object is not a shared resource, it's very
                // important to release it when the activity is paused.
                camera.stopPreview();
                camera = null;
            }

            public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
                // Now that the size is known, set up the camera parameters and begin
                // the preview.
                Camera.Parameters parameters = camera.getParameters();
                parameters.setPreviewSize(w, h);
                parameters=camera.getParameters();
                camera.setParameters(parameters);
                camera.startPreview();
            }
       }
        class DrawOnTop extends View {

            public DrawOnTop(Context context) {


                super(context);

                // TODO Auto-generated constructor stub
            }

            @Override
            protected void onDraw(Canvas canvas) {
                // TODO Auto-generated method stub
                Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.water);
                Paint paint = new Paint();
                paint.setAlpha(100);
                canvas.drawBitmap(mBitmap, 0, 0, paint); 


                super.onDraw(canvas);
            }

        }

我的XML code

my xml code

<FrameLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    <SurfaceView android:id="@+id/surfaceView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></SurfaceView>
    <LinearLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
        <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    </LinearLayout>

</FrameLayout>

因为它会surfaceview和叠加图像,但它不会显示按钮,还当我点击按钮重叠视图捕获和保存到SD卡中。

for it will surfaceview and overlay image but it will not show button and also when i click button the overlay view capture and save into the sd card.

请帮我。

推荐答案

ü可以使用下面code添加按钮。

U can add the button by using below code..

 <FrameLayout android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:layout_weight="2"
  android:padding="5dip"  
  >
  <com.commonlib.controls.CameraPreview
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:layout_weight="1"
  android:layout_gravity="center"
  android:id="@+id/surface_camera"
  />
  <Button android:id="@+id/target"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="surfacebuttonview"
    >
    </Button>
</FrameLayout>

这篇关于如何添加按钮,相机preVIEW的Andr​​oid?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆