xuxiuxi
2017-05-04 91e551962e2e61faf55e0e733f3e06fd2b413cbd


git-svn-id: http://192.168.1.226/svn/proxy@599 454eff88-639b-444f-9e54-f578c98de674
2个文件已添加
3个文件已修改
184 ■■■■■ 已修改文件
VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/PictureTaker.java 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register_camera_preview.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml
@@ -7,6 +7,7 @@
    <!-- INTERNET is needed to use a URI-based media player, depending on the URI -->
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.CAMERA"></uses-permission>
    <application
        android:name="cn.com.basic.face.base.BaseApplication"
@@ -25,6 +26,9 @@
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="cn.com.basic.face.base.PictureTaker"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:screenOrientation="landscape"></activity>
    </application>
</manifest>
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/PictureTaker.java
New file
@@ -0,0 +1,164 @@
package cn.com.basic.face.base;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.hardware.Camera;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Images;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnTouchListener;
import com.bsk.zhangbo.demoforbsk.R;
public class PictureTaker extends Activity
{
    private static final String TAG = "PICTURE_TAKER";
    private SurfaceView surfaceView;
    private SurfaceHolder surfaceHolder;
    private boolean isPreviewing;
    private Camera camera;
    private List<String> effects;
    private List<Camera.Size> sizes;
    private String effect = Camera.Parameters.EFFECT_NONE;
    @Override
    public void onCreate(Bundle bundle)
    {
        super.onCreate(bundle);
        setContentView(R.layout.fragment_register_camera_preview);
        surfaceView = (SurfaceView) findViewById(R.id.cameraSurfaceView);
        surfaceView.setOnTouchListener(touchListener);
        surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(surfaceCallback);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        super.onCreateOptionsMenu(menu);
        for (String effect : effects)
            menu.add(effect);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        Camera.Parameters p = camera.getParameters();
        p.setColorEffect(item.getTitle().toString());
        camera.setParameters(p);
        return true;
    }
    private SurfaceHolder.Callback surfaceCallback =
            new SurfaceHolder.Callback()
            {
                @Override
                public void surfaceDestroyed(SurfaceHolder arg0)
                {
                    camera.stopPreview();
                    isPreviewing = false;
                    camera.release();
                }
                @Override
                public void surfaceCreated(SurfaceHolder arg0)
                {
                    camera = Camera.open();
                    effects = camera.getParameters().getSupportedColorEffects();
                    sizes = camera.getParameters().getSupportedPreviewSizes();
                }
                @Override
                public void surfaceChanged(SurfaceHolder holder, int format,
                                           int width, int height)
                {
                    if (isPreviewing)
                        camera.stopPreview();
                    Camera.Parameters p = camera.getParameters();
                    p.setPreviewSize(sizes.get(0).width, sizes.get(0).height);
                    p.setColorEffect(effect);
                    p.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
                    camera.setParameters(p);
                    try
                    {
                        camera.setPreviewDisplay(holder); // display using holder
                    }
                    catch (IOException e)
                    {
                        Log.v(TAG, e.toString());
                    }
                    camera.startPreview(); // begin the preview
                    isPreviewing = true;
                }
            };
    Camera.PictureCallback pictureCallback = new Camera.PictureCallback()
    {
        public void onPictureTaken(byte[] imageData, Camera c)
        {
            String fileName = "Slideshow_" + System.currentTimeMillis();
            ContentValues values = new ContentValues();
            values.put(Images.Media.TITLE, fileName);
            values.put(Images.Media.DATE_ADDED, System.currentTimeMillis());
            values.put(Images.Media.MIME_TYPE, "image/jpg");
            Uri uri = getContentResolver().insert(
                    Images.Media.EXTERNAL_CONTENT_URI, values);
            try
            {
                OutputStream outStream =
                        getContentResolver().openOutputStream(uri);
                outStream.write(imageData);
                outStream.flush();
                outStream.close();
                Intent returnIntent = new Intent();
                returnIntent.setData(uri);
                setResult(RESULT_OK, returnIntent);
                finish();
            }
            catch (IOException ex)
            {
                setResult(RESULT_CANCELED);
            }
        }
    };
    private OnTouchListener touchListener = new OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
            camera.takePicture(null, null, pictureCallback);
            return false;
        }
    };
}
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
@@ -18,6 +18,7 @@
import cn.com.basic.face.adapter.SurveillanceFragment;
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.BaseFragment;
import cn.com.basic.face.base.PictureTaker;
import cn.com.basic.face.dialog.SurveillancePhotoDialog;
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.discern.entity.Register;
@@ -308,6 +309,7 @@
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
                fragment_register_id_card_photo.setImageBitmap(bitmap);
                fragment_register_id_card_photo_img = bitmap;
                MainActivity.getInstance().getContentResolver().delete(uri, null, null);
                fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
                fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
@@ -415,10 +417,8 @@
    @OnClick(R.id.fragment_register_id_card_photo)
    public void fragment_register_id_card_photo_click(View view) {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "选择图片"), fragment_register_id_card_photo_);
        Intent takePicture = new Intent(MainActivity.getInstance(), PictureTaker.class);
        startActivityForResult(takePicture, fragment_register_id_card_photo_);
    }
    @Override
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
@@ -104,6 +104,7 @@
                if (registerList.size() > 16) {
                    break;
                }
                surveillanceQueryItem.setSurveillancePhotoSelected(false);
                registerList.add(surveillanceQueryItem);
            }
        }
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register_camera_preview.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<SurfaceView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/cameraSurfaceView" android:layout_width="match_parent"
   android:layout_height="match_parent">
</SurfaceView>