You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
5.8 KiB
159 lines
5.8 KiB
package com.example.health;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.core.app.ActivityCompat;
|
|
import androidx.core.content.ContextCompat;
|
|
import androidx.core.content.FileProvider;
|
|
import android.Manifest;
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.BitmapFactory;
|
|
import android.net.Uri;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.Message;
|
|
import android.provider.MediaStore;
|
|
import android.text.TextUtils;
|
|
import android.view.View;
|
|
import android.widget.EditText;
|
|
import android.widget.ImageView;
|
|
import android.widget.Toast;
|
|
import java.io.File;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.URL;
|
|
public class network extends AppCompatActivity {
|
|
protected static final int CHANGE_UI = 1;
|
|
protected static final int ERROR = 2;
|
|
private static final int REQUEST_CODE_TAKE = 1;
|
|
private Uri imageUri;
|
|
private ImageView ivPic;
|
|
|
|
@SuppressLint("HandlerLeak")
|
|
private Handler handler = new Handler(){
|
|
public void handleMessage(android.os.Message msg){
|
|
if (msg.what == CHANGE_UI){
|
|
Bitmap bitmap = (Bitmap) msg.obj;
|
|
ivPic.setImageBitmap(bitmap);
|
|
}
|
|
else if (msg.what == ERROR){
|
|
Toast.makeText(network.this,"显示图片错误",Toast.LENGTH_SHORT).show();
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_network);
|
|
ivPic = (ImageView) findViewById(R.id.iv_pic);
|
|
}
|
|
|
|
public void click(View view){
|
|
new Thread(){
|
|
private HttpURLConnection conn;
|
|
private Bitmap bitmap;
|
|
public void run(){
|
|
try{
|
|
URL url = new URL("https://picb2.photophoto.cn/40/293/40293462_1.jpg");
|
|
conn = (HttpURLConnection) url.openConnection();
|
|
conn.setRequestMethod("GET");
|
|
conn.setConnectTimeout(5000);
|
|
int code = conn.getResponseCode();
|
|
if(code == 200){
|
|
InputStream is = conn.getInputStream();
|
|
bitmap = BitmapFactory.decodeStream(is);
|
|
Message msg = new Message();
|
|
msg.what = CHANGE_UI;
|
|
msg.obj = bitmap;
|
|
handler.sendMessage(msg);
|
|
}
|
|
else{
|
|
Message msg = new Message();
|
|
msg.what = ERROR;
|
|
handler.sendMessage(msg);
|
|
}
|
|
|
|
}
|
|
catch(Exception e){
|
|
e.printStackTrace();
|
|
Message msg = new Message();
|
|
msg.what = ERROR;
|
|
handler.sendMessage(msg);
|
|
}
|
|
conn.disconnect();
|
|
}
|
|
}.start();
|
|
}
|
|
|
|
public void takephoto(View view) {
|
|
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
|
|
// 真正的执行去拍照
|
|
doTake();
|
|
} else {
|
|
// 去申请权限
|
|
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
if (requestCode == 1) {
|
|
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
doTake();
|
|
} else {
|
|
Toast.makeText(this, "你没有获得摄像头权限~", Toast.LENGTH_SHORT).show();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private void doTake() {
|
|
File imageTemp = new File(getExternalCacheDir(), "imageOut.jpeg");
|
|
if (imageTemp.exists()) {
|
|
imageTemp.delete();
|
|
}
|
|
try {
|
|
imageTemp.createNewFile();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
if (Build.VERSION.SDK_INT > 24) {
|
|
// contentProvider
|
|
imageUri = FileProvider.getUriForFile(this, "com.example.health.fileprovider", imageTemp);
|
|
} else {
|
|
imageUri = Uri.fromFile(imageTemp);
|
|
}
|
|
Intent intent = new Intent();
|
|
intent.setAction("android.media.action.IMAGE_CAPTURE");
|
|
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
|
|
startActivityForResult(intent, REQUEST_CODE_TAKE);
|
|
|
|
}
|
|
@Override
|
|
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
if (requestCode == REQUEST_CODE_TAKE) {
|
|
if (resultCode == RESULT_OK) {
|
|
// 获取拍摄的照片
|
|
try {
|
|
InputStream inputStream = getContentResolver().openInputStream(imageUri);
|
|
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
|
|
ivPic.setImageBitmap(bitmap);
|
|
} catch (FileNotFoundException e) {
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|