如何在Android上按钮点击显示相机

时间:2015-01-01 12:31:17

标签: android

我有一个TextView标签为Camera的布局。点击那个TextView我必须显示相机。布局设置为对话框。以下是我已完成的代码

public class SelectCameraOrGalleryAlertDialog extends Dialog {

    public SelectCameraOrGalleryAlertDialog(Context context) {
        super(context);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.alerttoselectcameraorgallery);

        final View txtCamerabutton = (View) findViewById(R.id.txtcamerabutton);

        txtCamerabutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            startActivity(intent);
        }
    });

    }

}

此处错误显示为 方法startActivity(Intent)未定义类型new View.OnClickListener(){}

这是布局

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="70dp"
        android:gravity="center"
        android:background="#e29567">

        <TextView
            android:layout_width="126dp"
            android:layout_height="fill_parent"
            android:drawableLeft="@drawable/addressicon"
            android:drawablePadding="10dp"
            android:gravity="center_vertical"
            android:text="Add Photo"
            android:textSize="19sp" 
            android:textColor="#3a3a3a"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="90dp"
        android:layout_gravity="center"
        android:orientation="horizontal"
        android:background="#3a3a3a" >

        <TextView
            android:id="@+id/txtcamerabutton"
            android:layout_width="94dp"
            android:layout_height="fill_parent"
            android:paddingTop="5dp"
            android:drawableTop="@drawable/editicon"
            android:gravity="center"
            android:scaleX=".5"
            android:scaleY=".5"
            android:text="Camera" />

        <TextView
            android:id="@+id/txtgallerybutton"
            android:layout_width="94dp"
            android:layout_height="fill_parent"
            android:paddingTop="5dp"
            android:drawableTop="@drawable/replaceicon"
            android:gravity="center"
            android:scaleX=".5"
            android:scaleY=".5"
            android:text="Gallery" />

    </LinearLayout>


</LinearLayout>

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

尝试以下代码

public class SelectCameraOrGalleryAlertDialog extends Dialog {
    private Context mCtx;
            public SelectCameraOrGalleryAlertDialog(Context context) {
                super(context);
                mCtx = context;
            }

            @Override
            public void onCreate(Bundle savedInstanceState) {
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                setContentView(R.layout.alerttoselectcameraorgallery);

                final View txtCamerabutton = (View) findViewById(R.id.txtcamerabutton);

                txtCamerabutton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                    mCtx. startActivity(intent);
                }
            });

            }

答案 1 :(得分:0)

内部按钮点击而非startActivity(intent)使用startActivityForResult(intent, 0)

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, 0); 

在清单文件中添加Camers Uses Permission。

<uses-permission android:name="android.permission.CAMERA"></uses-permission>

有关详细信息,请查看此link