开发者

android camera preview with textview

I have camera preview on my android app but when I add an 'id' to the TextView in the xml then the app no longer runs. Are you not allowed to have a textview with an id? I need this because I would like the text to change on screen while having the camera preview?

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"  
android:layout_width="fill_parent"  
android:layout_height="fill_parent"
 > 
<SurfaceView   android:id="@+id/camerapreview"  
android:layout_width="fill_parent"  
android:layout_height="wrap_content"  
/> 
</LinearLayout>

control.xml

<?xml version="1.0" encoding="utf-8"?>

    <ImageView android:src="@drawable/icon" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_gravity="center"
        android:paddingTop="120dp" />
    <TextView android:layout_width="wrap_content" android:id="@+id/mind" 
        android:layout_height="wrap_content" android:text="First Text"
        android:layout_gravity="center" android:paddingTop="50dp"
        android:textSize="30dp" android:textStyle="bold" android:textColor="#FFFFFF" />
    <Button android:id="@+id/takepicture" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Save Image"
        android:layout_gravity="center" android:paddingTop="10dp"/>
</LinearLayout>

main.java:

package com.example.androidcamera;

import java.io.IOException;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.TextView;

public class main extends Activity implements SurfaceHolder.Callback {

Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
boolean previewing = false;
LayoutInflater controlInflater = null;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    getWindow().setFormat(PixelFormat.UNKNOWN);
    surfaceView = (SurfaceView) findViewById(R.id.camerapreview);
    surfaceHolder = surfaceView.getHolder();
    surfaceHolder.addCallback(this);
    surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    controlInflater = LayoutInflater.from(getBaseContext());
    View viewControl = controlInflater.inflate(R.layout.control, null);
    LayoutParams layoutParamsControl = new LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    this.addContentView(viewControl, layoutParamsControl);

    TextView textGenerateDesc = (TextView) findViewById(R.id.mind);
    textGenerateDesc.setText("hi");

    Button buttonTakePicture = (Button) findViewById(R.id.takepicture);
    buttonTakePicture.setOnClickListener(new Button.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            camera.takePicture(myShutterCallback,    myPictureCallback_RAW,
           开发者_运维技巧         myPictureCallback_JPG);
        }
    });
}


as I can see in the xml you give the textview id as "textview" and in code you take it by R.id.mind

Did you changed the code here or its the code that you have?


You just missed the starting tag of 'LinearLayout'

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

rest are same

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="120dp"
 />
<TextView
android:id="@+id/mind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="50dp"
android:text="First Text"
android:textColor="#FFFFFF"
android:textSize="30dp"
android:textStyle="bold" />

<Button
android:id="@+id/takepicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="10dp"
android:text="Save Image" />

</LinearLayout>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜