当前位置: 首页 > news >正文

视频网站会员系统怎么做wordpress后台用的是

视频网站会员系统怎么做,wordpress后台用的是,常用的搜索引擎网址,有主体新增网站前言现在的APP基本都有个人资料的填写#xff0c;基本的都有头像的选择#xff0c;支持拍照和从本地相册选择#xff0c;剪切圆形头像的功能#xff0c;现在用个小demo实现以下。下面看一下效果图上代码#xff1a;主界面代码package com.example.androidpersonal_icon;im…前言现在的APP基本都有个人资料的填写基本的都有头像的选择支持拍照和从本地相册选择剪切圆形头像的功能现在用个小demo实现以下。下面看一下效果图上代码主界面代码package com.example.androidpersonal_icon;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.util.Log;import android.view.Gravity;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;public class MainActivity extends Activity {protected static final int CHOOSE_PICTURE 0;protected static final int TAKE_PICTURE 1;private static final int CROP_SMALL_PICTURE 2;protected static Uri tempUri;private ImageView iv_personal_icon;private SelectPicPopupWindow menuWindow;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 新建一个用来存储照片的文件夹File destDir new File(Environment.getExternalStorageDirectory() /AndroidPersonal_icon);if (!destDir.exists()) {destDir.mkdirs();}iv_personal_icon (ImageView) findViewById(R.id.iv_personal_icon);iv_personal_icon.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {// 实例化SelectPicPopupWindowmenuWindow new SelectPicPopupWindow(MainActivity.this, itemsOnClick);// 显示窗口menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main),Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); // 设置layout在PopupWindow中显示的位置}});// 读取上一次剪切的照片if (destDir.exists() destDir.isDirectory()) {if (destDir.list().length 0) {Log.d(111111111112, destDir.toString() /image_icon.png);Bitmap bitmap BitmapFactory.decodeFile(destDir.toString() /image_icon.png);iv_personal_icon.setImageBitmap(bitmap);} else {iv_personal_icon.setBackgroundResource(R.drawable.default_personal_image);}}}// 为弹出窗口实现监听类private OnClickListener itemsOnClick new OnClickListener() {public void onClick(View v) {menuWindow.dismiss();switch (v.getId()) {case R.id.Layout_take_photo:Intent openCameraIntent new Intent(MediaStore.ACTION_IMAGE_CAPTURE);tempUri Uri.fromFile(new File(Environment.getExternalStorageDirectory() /AndroidPersonal_icon, image.jpg));Log.d(11111111, tempUri.toString());// 指定照片保存路径(SD卡)image.jpg为一个临时文件每次拍照后这个图片都会被替换openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);startActivityForResult(openCameraIntent, TAKE_PICTURE);break;case R.id.Layout_pick_photo:Intent openAlbumIntent new Intent(Intent.ACTION_GET_CONTENT);openAlbumIntent.setType(image/*);startActivityForResult(openAlbumIntent, CHOOSE_PICTURE);break;default:break;}}};Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode RESULT_OK) { // 如果返回码是可以用的switch (requestCode) {case TAKE_PICTURE:startPhotoZoom(tempUri); // 开始对图片进行裁剪处理break;case CHOOSE_PICTURE:startPhotoZoom(data.getData()); // 开始对图片进行裁剪处理break;case CROP_SMALL_PICTURE:if (data ! null) {setImageToView(data); // 让刚才选择裁剪得到的图片显示在界面上}break;}}}/*** 裁剪图片方法实现** param uri*/protected void startPhotoZoom(Uri uri) {if (uri null) {Log.i(tag, The uri is not exist.);}tempUri uri;Intent intent new Intent(com.android.camera.action.CROP);intent.setDataAndType(uri, image/*);// 设置裁剪intent.putExtra(crop, true);// aspectX aspectY 是宽高的比例intent.putExtra(aspectX, 1);intent.putExtra(aspectY, 1);// outputX outputY 是裁剪图片宽高intent.putExtra(outputX, 150);intent.putExtra(outputY, 150);intent.putExtra(return-data, true);startActivityForResult(intent, CROP_SMALL_PICTURE);}/*** 保存裁剪之后的图片数据** param** param picdata*/protected void setImageToView(Intent data) {Bundle extras data.getExtras();if (extras ! null) {Bitmap photo extras.getParcelable(data);photo Utils.toRoundBitmap(photo, tempUri); // 这个时候的图片已经被处理成圆形的了iv_personal_icon.setImageBitmap(photo);uploadPic(photo);}}private void uploadPic(Bitmap bitmap) {// 上传至服务器// ... 可以在这里把Bitmap转换成file然后得到file的url做文件上传操作// 注意这里得到的图片已经是圆形图片了// bitmap是没有做个圆形处理的但已经被裁剪了String imagePath Utils.savePhoto(bitmap,Environment.getExternalStorageDirectory().getAbsolutePath() /AndroidPersonal_icon, image_icon);Log.d(imagePath, imagePath );if (imagePath ! null) {// 拿着imagePath上传了// ...}}}圆形头像剪切代码package com.example.androidpersonal_icon;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.RectF;import android.net.Uri;import android.util.Log;public class Utils {/*** Save image to the SD card** param photoBitmap* param photoName* param path*/public static String savePhoto(Bitmap photoBitmap, String path,String photoName) {String localPath null;if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {File dir new File(path);if (!dir.exists()) {dir.mkdirs();}File photoFile new File(path, photoName .png);FileOutputStream fileOutputStream null;try {fileOutputStream new FileOutputStream(photoFile);if (photoBitmap ! null) {if (photoBitmap.compress(Bitmap.CompressFormat.PNG, 100,fileOutputStream)) { // 转换完成localPath photoFile.getPath();fileOutputStream.flush();}}} catch (FileNotFoundException e) {photoFile.delete();localPath null;e.printStackTrace();} catch (IOException e) {photoFile.delete();localPath null;e.printStackTrace();} finally {try {if (fileOutputStream ! null) {fileOutputStream.close();fileOutputStream null;}} catch (IOException e) {e.printStackTrace();}}}return localPath;}/*** 转换图片成圆形** param bitmap* 传入Bitmap对象* param tempUri* return*/public static Bitmap toRoundBitmap(Bitmap bitmap, Uri tempUri) {int width bitmap.getWidth();int height bitmap.getHeight();float roundPx;float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom;if (width height) {roundPx width / 2;left 0;top 0;right width;bottom width;height width;dst_left 0;dst_top 0;dst_right width;dst_bottom width;} else {roundPx height / 2;float clip (width - height) / 2;left clip;right width - clip;top 0;bottom height;width height;dst_left 0;dst_top 0;dst_right height;dst_bottom height;}Bitmap output Bitmap.createBitmap(width, height, Config.ARGB_8888);Canvas canvas new Canvas(output);final int color 0xff424242;final Paint paint new Paint();final Rect src new Rect((int) left, (int) top, (int) right,(int) bottom);final Rect dst new Rect((int) dst_left, (int) dst_top,(int) dst_right, (int) dst_bottom);final RectF rectF new RectF(dst);paint.setAntiAlias(true);// 设置画笔无锯齿canvas.drawARGB(0, 0, 0, 0); // 填充整个Canvaspaint.setColor(color);// 以下有两种方法画圆,drawRounRect和drawCircle// canvas.drawRoundRect(rectF, roundPx, roundPx, paint);//// 画圆角矩形第一个参数为图形显示区域第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。canvas.drawCircle(roundPx, roundPx, roundPx, paint);paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));// 设置两张图片相交时的模式,参考http://trylovecatch.iteye.com/blog/1189452canvas.drawBitmap(bitmap, src, dst, paint); // 以Mode.SRC_IN模式合并bitmap和已经draw了的Circlereturn output;}}ok,大功告成,最后别忘了在清单文件中添加读写sd可权限不然得不到imagePath
http://www.zqtcl.cn/news/497596/

相关文章:

  • 手机网站开发用什么设计之家网
  • 网站开发平台有哪些什么是网络开发
  • 学校网站前置审批网站做哪些比较有意思
  • 怎么给企业做网站学计算机网站建设
  • 网站关键词优化排名技巧aiyuan wordpress
  • 建设工程资质证书二维码扫描网站自己做的网站如何让qq登录
  • 网站域名有效期wordpress 特别慢
  • 建立个人网站服务器如何用dedecms做网站
  • php网站开发实市场推广策略 包括哪些
  • 合众商道网站开发可以投稿的写作网站
  • 北京贸易公司网站制作免费的查企业的网站
  • 网站建设报价表模板下载小程序怎么找出来
  • 网站制作简单协议wordpress快速建站教程视频教程
  • 杭州做网站价格北京企业响应式网站建设
  • 30个成功的电子商务网站设计中企动力 网站报价
  • php 网站开发 视频百度seo排名查询
  • 网站开发代码wordpress提示安装
  • 网站推广的策略高端网球拍
  • 广东知名网站建设wordpress 用户量
  • asp源代码网站网络架构图是什么
  • 专业做淘宝网站公司吗苏州网站制作开发
  • 电商网站模板html安阳历史
  • seo快速排名多少钱安阳网站怎么优化
  • 如何在网站后台删除栏目阿里巴巴上做网站要多少钱
  • 网站建设意识形态工作河北省两学一做网站
  • 綦江建站哪家正规php做不了大型网站吗
  • 优秀的设计网站青岛网站设计企业
  • 谁有做爰网站号wordpress 4.8 中文
  • 毕业设计做网站用什么广州中智软件开发有限公司
  • 哪个网站不花钱可以做招聘wordpress没有页脚