2011-06-04 13 views
0

私はアンドロイドアプリでカメラのプレビューをしていますが、xmlのTextViewに 'id'を追加すると、アプリはもう実行されません。あなたはIDを持つテキストビューを持つことが許されていませんか?カメラのプレビューをしながらテキストを画面上で変更したいので、これが必要ですか?android camera preview with textview

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); 
     } 
    }); 
} 
+0

コードを追加したのと同じです。基本的には、idがtextviewにないときにのみ機能します.. – karlstackoverflow

+0

アンドロイドがカメラのIDを持つtextviewsを持っていない限り、正しく動作するはずです。 – karlstackoverflow

+0

どうしたらいいですか? – MByD

答えて

1

私はTextViewに「とあなたはtextview IDを与えるXMLで見ることができるように"コードであなたはそれを取るR.id.mind

ここでコードを変更しましたか、コードを変更しましたか?あなたは単に 'の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" > 

残りの開始タグを逃した

+0

Iveはすでにそれを変更しました。私はstackoverflow用に編集しました。私の場合、彼らは同じです。 – karlstackoverflow

+0

'viewControl.getChildAt(1)'を実行しようとしましたか? ID:D、それはちょっとばかだが試してみてください – Cata

+0

それは変です。私は自分の携帯電話を再起動し、今は動作します。それはidを受け入れ、text.wtfも変更します。 – karlstackoverflow

0

<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>