个人中心,设置头像
来源:互联网 发布:福建广电网络宽带 编辑:程序博客网 时间: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>
阅读全文
0 0
- 个人中心,设置头像
- iOS UI篇15- 个人中心设置头像
- iOS调用相机和相册 并编辑保存到本地(个人中心设置头像)
- HTML个人设置中心以头像为背景类似蒙层效果
- Android之---个人中心里边的头像的设置、本地保存和传服务器
- 个人中心--圆形头像--拍照--裁剪
- Android个人中心的头像上传,图片编码及截取
- iOS 仿百度外卖-个人中心(头像波浪效果)
- iOS 仿百度外卖-个人中心(头像波浪效果)
- ClauseView个人中心、设置的ItemView
- 设置个人中心header下拉变大
- IOS开发类似于微博个人中心的头像可以拖动lei
- 头像设置
- IOS开发从手机相册中上传头像到APP的个人中心同时保存到数据库
- IOS - 个人中心界面
- 测试个人中心
- 个人中心主页
- 头像设置(类似于CSDN的头像设置)
- Java的内存回收机制
- 集合-Set
- 全军出击,银联出台标准二维码产品
- System.arraycopy 与 Arrays.copyOf 分析
- Excel封装类 导成excel 封装思路
- 个人中心,设置头像
- 用友U8二次开发之登录
- 用Unity3D开发2D小游戏 Flappy Bird
- 跨站脚本攻击(XSS)
- 使用_.htaccess_文件禁用_Web_目录列举
- 如何使用MindManager进行高效的工作会议?
- MVC与三层架构
- mybatis报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 解决方法
- 图像识别并用机械手进行抓取