package com.example.admin.facesearch;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Message;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.File;
import util.CommandGenerate;
import util.Constant;
import util.HttpUtil;
public class MainActivity extends Activity{
private Button addFace;
private Button searchFace;
private TextView result;
/**
* state 1:addFace 2:searchFace
*/
private int state = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addFace =(Button)findViewById(R.id.addFace);
searchFace = (Button) findViewById(R.id.searchFace);
result =(TextView) findViewById(R.id.result);
addFace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
state = 1;
chooseHeadPic();
}
});
searchFace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
state = 2;
chooseHeadPic();
}
});
//===================================用于测试返回数据start=============================================================
/**
* 创建一个人脸的集合 FaceSet,用于存储人脸标识 face_token
*/
// createFaceSet();
/**
* 传入图片进行人脸检测和人脸分析
*/
//detectRequest();
/**
*为一个已经创建的 FaceSet 添加人脸标识 face_token
*/
// String face_tokens = "" ;
// addFace(face_tokens);
/**
* 在一个已有的 FaceSet 中找出与目标人脸最相似的一张或多张人脸,返回置信度和不同误识率下的阈值。
*/
// String face_token = "" ;
// serachFace(face_token);
}
//=====================================end==============================================
//=====================================调用相机和相册start==============================================
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case REQUEST_CODE_IMAGE_LOCAL:
try {
Uri PPicUri = data.getData();
Cursor cursor = getContentResolver().query(PPicUri, null ,
null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media. DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
cursor.close();
Uri uriPicPath = Uri.parse("file://" + path);
detectRequest(state,uriPicPath.getPath());
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
break;
case REQUEST_CODE_IMAGE_CAMERA:
String sdState = Environment.getExternalStorageState();
if (!sdState.equals(Environment.MEDIA_MOUNTED )) {
return;
}
Uri uriPic = Uri. parse("file://" + imgDir);
detectRequest(state,uriPic.getPath());
File file = new File( "file://" + imgDir);
if (file.exists()) {
}
break;
case REQUEST_CODE_CROP_IMAGE:
data.getData();
data.getExtras().get( "data");
data.getParcelableExtra( "data");
String photoName = System.currentTimeMillis() + ".jpg";
imgUrl =PHOTO_PATH + photoName;
break;
default:
break;
}
}
}
//获取图片
private static final int outputX = 250;
private static final int outputY = 250;
private String imgDir = null;
private String imgUrl = "";
public static final String PHOTO_PATH= Environment.getExternalStorageDirectory().getAbsolutePath() +"/dong/photo/";
/** startActivityForResult的request的类型. 相册获取。 */
public static final int REQUEST_CODE_IMAGE_LOCAL = 11;
/** startActivityForResult的request的类型. 照相获取。 */
public static final int REQUEST_CODE_IMAGE_CAMERA = 12;
/** startActivityForResult的裁剪图片返回 */
public static final int REQUEST_CODE_CROP_IMAGE = 13;
//调用相册and 相机
private void chooseHeadPic() {
ChoosePhotoDialog mChoosePhotoDialog = new ChoosePhotoDialog(
MainActivity.this, new ChoosePhotoDialog.CallBackListener() {
@Override
public void clickTackPhoto() {
TakePicture();
}
@Override
public void clickLocation() {
PickPicture();
}
});
mChoosePhotoDialog.show();
}
/**
* 调用相机
*/
public void TakePicture() {
try {
File file= new File(PHOTO_PATH);
if(!file.exists()){
file.mkdirs();
}
String imgName = System. currentTimeMillis() + ".jpg";
imgDir =PHOTO_PATH + imgName;
Intent intent2 = new Intent("android.media.action.IMAGE_CAPTURE" );
intent2.putExtra(MediaStore. EXTRA_OUTPUT,
Uri. fromFile(new File(PHOTO_PATH , imgName)));
startActivityForResult(intent2, REQUEST_CODE_IMAGE_CAMERA );
} catch (ActivityNotFoundException e) {
Toast.makeText(MainActivity.this,"打开照相机出错!",Toast.LENGTH_SHORT).show();
}
}
/**
* 调用相册
*/
private void PickPicture() {
Intent pickAlbumIntent = new Intent(Intent.ACTION_PICK ,
android.provider.MediaStore.Images.Media. EXTERNAL_CONTENT_URI);
pickAlbumIntent.setType( "image/*");
startActivityForResult(pickAlbumIntent,
REQUEST_CODE_IMAGE_LOCAL);
}
/**
* 裁剪图片
* @param uri
* @param outputX
* @param outputY
* @param requestCode
*/
private void cropImageUri(Uri uri, int outputX, int outputY, int requestCode) {
Intent intent = new Intent("com.android.camera.action.CROP" );
intent.setDataAndType(uri, "image/*");
intent.putExtra( "crop", "true");
intent.putExtra( "aspectX", 1);
intent.putExtra( "aspectY", 1);
intent.putExtra( "outputX", outputX);
intent.putExtra( "outputY", outputY);
intent.putExtra( "return-data", true );
startActivityForResult(intent, requestCode);
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
faceSearch.zip (41个子文件)
faceSearch
faceSearch
gradlew.bat 2KB
gradlew 5KB
gradle.properties 747B
app
proguard-rules.pro 772B
src
test
java
com
example
admin
facesearch
ExampleUnitTest.java 422B
androidTest
java
com
example
admin
facesearch
ExampleInstrumentedTest.java 783B
main
res
raw
gdroot.crt 1KB
mipmap-xxxhdpi
ic_launcher.png 9KB
ic_launcher_round.png 15KB
drawable
listdialog_item_selector.xml 455B
line1.png 3KB
ic_launcher_background.xml 6KB
mipmap-hdpi
ic_launcher.png 3KB
ic_launcher_round.png 5KB
drawable-v24
ic_launcher_foreground.xml 2KB
values
colors.xml 296B
strings.xml 76B
styles.xml 205B
mipmap-xxhdpi
ic_launcher.png 6KB
ic_launcher_round.png 10KB
mipmap-mdpi
ic_launcher.png 2KB
ic_launcher_round.png 3KB
mipmap-xhdpi
ic_launcher.png 4KB
ic_launcher_round.png 7KB
mipmap-anydpi-v26
ic_launcher_round.xml 276B
ic_launcher.xml 276B
layout
activity_main.xml 1KB
dialog_choose_photo.xml 2KB
java
com
example
admin
facesearch
ChoosePhotoDialog.java 2KB
MainActivity.java 17KB
util
HttpUtil.java 4KB
Constant.java 5KB
AndroidManifest.xml 1KB
.gitignore 8B
build.gradle 1KB
libs
sun.misc.BASE64Decoder.jar 7KB
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 236B
.gitignore 127B
settings.gradle 16B
build.gradle 573B
共 41 条
- 1
资源评论
- dragonpeng20082018-07-31app的demo,不是Java后台的demo,如果是想下载后台代码的请不要下载
daCrazy
- 粉丝: 7
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功