个人中心,设置头像

来源:互联网 发布:福建广电网络宽带 编辑:程序博客网 时间:2024/05/01 20:07
   
package com.test.xp.camera;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.provider.MediaStore;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.ImageView;import android.widget.RelativeLayout;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class MainActivity extends AppCompatActivity {    private RelativeLayout rl;    private ImageView iv;    private File imgFile;    private final String IMAGE_FILE_NAME = "faceImage.jpg";    String[] items = new String[]{"选择本地图片", "拍照"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rl=(RelativeLayout)findViewById(R.id.rl);        iv=(ImageView)findViewById(R.id.iv);        init();        imgFile=getImgPath();    }       //获取文件    private File getImgPath() {        File cacheFileDir;        if (Environment.MEDIA_MOUNTED.equals(Environment                .getExternalStorageState())                || !Environment.isExternalStorageRemovable()) {            cacheFileDir = Environment.getExternalStorageDirectory();        } else {            cacheFileDir = getApplicationContext().getCacheDir();        }        if (null != cacheFileDir && !cacheFileDir.exists()) {            cacheFileDir.mkdirs();        }        File cacheFile = App.getFile(cacheFileDir.getAbsolutePath()                + File.separator + "cyol" + File.separator + IMAGE_FILE_NAME);        return cacheFile;    }    private void init() {        rl.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                new AlertDialog.Builder(MainActivity.this).setTitle("设置头像").setItems(items, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        switch (which){                            case 0://相册中选取                                Intent intentFromGallery=new Intent();                                intentFromGallery.setType("image/*");                                intentFromGallery.setAction(Intent.ACTION_GET_CONTENT);                                startActivityForResult(intentFromGallery,450);                                break;                            case 1://拍照                                Intent intentFromCapture = new Intent(                                        MediaStore.ACTION_IMAGE_CAPTURE);                                intentFromCapture.putExtra(MediaStore.EXTRA_OUTPUT,                                        Uri.fromFile(imgFile));                                startActivityForResult(intentFromCapture,                                        451);                                break;                        }                    }                }).setNegativeButton("取消", new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                dialog.dismiss();                            }                        }).show();            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch (requestCode){            case 450://相册                if (null!=data){                    startPhotoZoom(data.getData());                }                break;            case 451://拍照                startPhotoZoom();                break;            case 452://裁剪后的返回                if (data != null) {                    Bundle extras = data.getExtras();                    if (extras != null) {                        Bitmap photo = extras.getParcelable("data");                        Log.e("111111",photo.toString());                        uploadPhoto(photo);                    } else {                    }                }                break;        }        super.onActivityResult(requestCode, resultCode, data);    }    private void uploadPhoto(Bitmap photo) {        try {            photo.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(                    imgFile));        } catch (FileNotFoundException e) {            e.printStackTrace();        }        iv.setImageBitmap(photo);    }    //开始裁剪图片    private void startPhotoZoom(){        Uri uri=Uri.fromFile(imgFile);        startPhotoZoom(uri);    }    //裁剪图片    private void startPhotoZoom(Uri data) {        if (null==data){            return;        }        Intent intent=new Intent("com.android.camera.action.CROP");        intent.setDataAndType(data,"image/*");        //设置裁剪        intent.putExtra("crop","true");        // aspectX aspectY 是宽高的比例        intent.putExtra("aspectX", 1);        intent.putExtra("aspectY", 1);        // outputX outputY 是裁剪图片宽高        intent.putExtra("outputX", 320);        intent.putExtra("outputY", 320);        intent.putExtra("return-data", true);        startActivityForResult(intent, 452);        //    }}
public class App extends Application {    @Override    public void onCreate() {        super.onCreate();    }    public static File getFile(String path){        int fp=path.lastIndexOf(File.separator);        String sfp=path.substring(0, fp);        File fpath=new File(sfp);        if(!fpath.exists()&&!fpath.isDirectory()){            fpath.mkdirs();        }        File f=new File(path);        if(!f.exists()){            try {                f.createNewFile();            } catch (IOException e) {                e.printStackTrace();            }        }        return f;    }}

main_activity.xml的布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent" tools:context="com.test.xp.camera.MainActivity">    <RelativeLayout        android:gravity="center_horizontal"        android:id="@+id/rl"        android:layout_width="368dp"        android:layout_height="wrap_content">        <ImageView            android:id="@+id/iv"            android:src="@mipmap/ic_launcher"            android:layout_width="wrap_content"            android:layout_height="wrap_content" />    </RelativeLayout></LinearLayout>

原创粉丝点击