【问题标题】:Android camera with background带背景的安卓相机
【发布时间】:2014-06-05 18:51:23
【问题描述】:

我对 android 编程非常陌生,我想在 android studio 中制作一个应用程序,首先,它打开相机,然后,当你按下拍照按钮(默认圆形按钮)时,它等待 3 秒,然后 1拍照前一秒,app变黑,app黑屏时拍照。我只编程了一个相机,你按下拍照,它就会带你到相机。我需要帮助编程我所说的。

按圆圈拍照后,等待3秒,然后app变黑,app黑屏时拍照。谢谢。

Activity_Main.xml:

<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="org.intracode.comactorganizer.cameratest.cameratest.MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imagen"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:src="@android:drawable/btn_star_big_off" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Foto"
        android:id="@+id/btnCaptura"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>

androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.intracode.comactorganizer.testcamera.testcamera" >
<uses-permission android:name="android.permission.CAMERA"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="org.intracode.comactorganizer.testcamera.testcamera.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

MainActivity

package org.intracode.comactorganizer.cameratest.cameratest;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener {
    Button btn;
    ImageView img;
    Intent i;
    Bitmap bmp;
    final static int cons=0;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }
    public void init()
    {
btn = (Button)findViewById(R.id.btnCaptura);
        btn.setOnClickListener(this);

        img=(ImageView)findViewById(R.id.imagen);

    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.main,menu);
        return true;
        }

    @Override
    public void onClick(View view) {
        int id;
        id= view.getId();
        switch (id)
        {
            case R.id.btnCaptura:
i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(i,cons);
                break;
        }
        }
@Override
protected void onActivityResult(int requestCode,int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == Activity.RESULT_OK)
    {
        Bundle ext = data.getExtras();
        bmp = (Bitmap)ext.get("data");
        img.setImageBitmap(bmp);

    }
}

}

【问题讨论】:

    标签: android camera


    【解决方案1】:

    为了做我认为你想要的,即启动相机应用程序,但允许用户拍照,3 秒过去了,相机屏幕变黑了?然后,您将不得不实际修改相机本身,而不是为默认相机应用启动 Intent。

    最好也看看这个:http://developer.android.com/guide/topics/media/camera.html#custom-camera

    如果您是说要修改您的应用程序变黑,而不是 CAMERA,那么只需添加:

    try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }

    等待 3 秒,但请确保不要使用新线程阻塞主线程,或者关注此帖子 https://stackoverflow.com/a/14615606/1784299

    然后将布局顶部的另一个视图设置为黑色但不可见,然后将其更改为可见。

    【讨论】:

    • 好的,你能解释一下如何实现thread.sleep吗?因为我对 android 编程非常陌生
    猜你喜欢
    • 2020-04-18
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多