iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >Android应用中如何将头像保存到本地服务器
  • 915
分享到

Android应用中如何将头像保存到本地服务器

androidroi 2023-05-31 10:05:54 915人浏览 薄情痞子
摘要

Android应用中如何将头像保存到本地服务器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体代码如下所述:public class MainActivi

Android应用中如何将头像保存到本地服务器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

具体代码如下所述:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {  private ImageView iv;//要设置的头像  private Button btn_photo;//调用相册按钮  private Button btn_camera;//调用相机按钮  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    iv=(ImageView) findViewById(R.id.iv);    btn_photo = (Button) findViewById(R.id.btn_photo);    btn_camera = (Button) findViewById(R.id.btn_camera);    btn_photo.setOnClickListener(this);    btn_camera.setOnClickListener(this);  }  @Override  public void onClick(View v) {    switch (v.getId()) {      case R.id.btn_photo://打开系统相册        Intent intent=new Intent(Intent.ACTioN_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);        startActivityForResult(intent,100);        break;      case R.id.btn_camera://打开系统相机        Intent intent2=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);        startActivityForResult(intent2,200);        break;    }  }  @Requiresapi(api = Build.VERSION_CODES.KITKAT)  @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if(requestCode==100&&resultCode==RESULT_OK&&data!=null){//系统相册      Uri imageData = data.getData();      String path=getPath(imageData);      Bitmap bitmap = BitmapFactory.decodeFile(path);      Bitmap bitmap1 = BitmapUtils.zoom(bitmap, iv.getWidth(), iv.getHeight());      Bitmap bitmap2 = BitmapUtils.circleBitmap(bitmap1);      //加载显示      iv.setImageBitmap(bitmap2);      //bitmap图片上传到服务器......      //bitmap图片保存到本地      saveImage(bitmap2);    }else if(requestCode==200&&resultCode==RESULT_OK&&data!=null){//系统相机      Bitmap bitmap = (Bitmap) data.getExtras().get("data");      BitmapUtils.zoom(bitmap,iv.getWidth(),iv.getHeight());      bitmap=BitmapUtils.circleBitmap(bitmap);      //加载显示      iv.setImageBitmap(bitmap);      //bitmap图片上传到服务器......      //bitmap图片保存到本地      saveImage(bitmap);    }  }    private void saveImage(Bitmap bitmap) {    File filesDir;    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//判断sd卡是否挂载      //路径1:storage/sdcard/Android/data/包名/files      filesDir = this.getExternalFilesDir("");    }else{//手机内部存储      //路径:data/data/包名/files      filesDir = this.getFilesDir();    }    FileOutputStream fos = null;    try {      File file = new File(filesDir,"icon.png");      fos = new FileOutputStream(file);      bitmap.compress(Bitmap.CompressFORMat.PNG, 100,fos);    } catch (FileNotFoundException e) {      e.printStackTrace();    }finally{      if(fos != null){        try {          fos.close();        } catch (IOException e) {          e.printStackTrace();        }      }    }  }  //如果本地有,就不需要再去联网去请求  private boolean readImage() {    File filesDir;    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//判断sd卡是否挂载      //路径1:storage/sdcard/Android/data/包名/files      filesDir = getExternalFilesDir("");    }else{//手机内部存储      //路径:data/data/包名/files      filesDir = getFilesDir();    }    File file = new File(filesDir,"icon.png");    if(file.exists()){      //存储--->内存      Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());      iv.setImageBitmap(bitmap);      return true;    }    return false;  }  @RequiresApi(api = Build.VERSION_CODES.KITKAT)  private String getPath(Uri uri) {    int sdkVersion = Build.VERSION.SDK_INT;    //高于4.4.2的版本    if (sdkVersion >= 19) {      Log.e("TAG", "uri auth: " + uri.getAuthority());      if (isExternalStorageDocument(uri)) {        String docId = DocumentsContract.getDocumentId(uri);        String[] split = docId.split(":");        String type = split[0];        if ("primary".equalsIgnoreCase(type)) {          return Environment.getExternalStorageDirectory() + "/" + split[1];        }      } else if (isDownloadsDocument(uri)) {        final String id = DocumentsContract.getDocumentId(uri);        final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"),            Long.valueOf(id));        return getDataColumn(this, contentUri, null, null);      } else if (isMediaDocument(uri)) {        final String docId = DocumentsContract.getDocumentId(uri);        final String[] split = docId.split(":");        final String type = split[0];        Uri contentUri = null;        if ("image".equals(type)) {          contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;        } else if ("video".equals(type)) {          contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;        } else if ("audio".equals(type)) {          contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;        }        final String selection = "_id=?";        final String[] selectionArgs = new String[]{split[1]};        return getDataColumn(this, contentUri, selection, selectionArgs);      } else if (isMedia(uri)) {        String[] proj = {MediaStore.Images.Media.DATA};        Cursor actualimagecursor = this.managedQuery(uri, proj, null, null, null);        int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);        actualimagecursor.moveToFirst();        return actualimagecursor.getString(actual_image_column_index);      }    } else if ("content".equalsIgnoreCase(uri.getScheme())) {      // Return the remote address      if (isGooglePhotosUri(uri))        return uri.getLastPathSegment();      return getDataColumn(this, uri, null, null);    }    // File    else if ("file".equalsIgnoreCase(uri.getScheme())) {      return uri.getPath();    }    return null;  }    public static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {    Cursor cursor = null;    final String column = "_data";    final String[] projection = {column};    try {      cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);      if (cursor != null && cursor.moveToFirst()) {        final int index = cursor.getColumnIndexOrThrow(column);        return cursor.getString(index);      }    } finally {      if (cursor != null)        cursor.close();    }    return null;  }  private boolean isExternalStorageDocument(Uri uri) {    return "com.android.externalstorage.documents".equals(uri.getAuthority());  }  public static boolean isDownloadsDocument(Uri uri) {    return "com.android.providers.downloads.documents".equals(uri.getAuthority());  }  public static boolean isMediaDocument(Uri uri) {    return "com.android.providers.media.documents".equals(uri.getAuthority());  }  public static boolean isMedia(Uri uri) {    return "media".equals(uri.getAuthority());  }    public static boolean isGooglePhotosUri(Uri uri) {    return "com.google.android.apps.photos.content".equals(uri.getAuthority());  }    @Override  protected void onResume() {    super.onResume();    if(readImage()){      return;    }  }}//BitmapUtils工具类public class BitmapUtils {   public static Bitmap circleBitmap(Bitmap source){    //默认只对宽进行处理    int width=source.getWidth();    Bitmap bitmap=Bitmap.createBitmap(width,width,Bitmap.Config.ARGB_8888);    canvas canvas=new Canvas(bitmap);    Paint paint=new Paint();    //设置抗锯齿    paint.setAntiAlias(true);    canvas.drawCircle(width/2,width/2,width/2,paint);    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));    canvas.drawBitmap(source,0,0,paint);    return bitmap;  }    public static Bitmap zoom(Bitmap source,float width,float height){    Matrix matrix=new Matrix();    //图片进行压缩处理    matrix.postScale(width/source.getWidth(),height/source.getHeight());    Bitmap bitmap = Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, false);    return bitmap;  }}

看完上述内容,你们掌握Android应用中如何将头像保存到本地服务器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网服务器频道,感谢各位的阅读!

--结束END--

本文标题: Android应用中如何将头像保存到本地服务器

本文链接: https://www.lsjlt.com/news/224965.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android应用中如何将头像保存到本地服务器
    Android应用中如何将头像保存到本地服务器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体代码如下所述:public class MainActivi...
    99+
    2023-05-31
    android roi
  • Android应用中怎么将图片保存到本地相册
    这篇文章将为大家详细讲解有关Android应用中怎么将图片保存到本地相册,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先是保存图片到本地private static f...
    99+
    2023-05-31
    android roi
  • Android应用中如何异步下载图片并将图片保存到本地DEMO中
    Android应用中如何异步下载图片并将图片保存到本地DEMO中?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。通下面是demo中的Activity。public class...
    99+
    2023-05-31
    android roi
  • Android应用中如何将头像图片变圆形
    本篇文章为大家展示了Android应用中如何将头像图片变圆形,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。实现步骤1.自定义一个转换工具类package com.common.base.util;i...
    99+
    2023-05-31
    android roi
  • 微信小程序获取头像昵称 保存头像到服务器
    微信官方推荐的替代做法:头像昵称填写 | 微信开放文档 (qq.com)  wxml ...
    99+
    2023-08-31
    微信小程序 小程序 微信
  • vue调用摄像头进行拍照并能保存到本地的方法
    目录1. 使用Vue.js2. 创建目录3.实现:4.效果1. 使用Vue.js 把网页内容Ctrl+s保存到本地然后添加到项目中 https://cdn.jsdelivr.net/...
    99+
    2024-04-02
  • 云服务器调用本地摄像头
    如果您需要在云服务器上使用本地摄像头,可以使用以下步骤:连接摄像头:将摄像头连接至您的云服务器或您的本地局域网(LAN)网络上的其他摄像头设备。打开摄像头:在使用本地摄像头前,请确保您已打开了网络摄像头。在本地摄像头中,您可能需要设置监控选...
    99+
    2023-10-25
    摄像头 服务器
  • 本地摄像头如何连接云服务器设备
    1. 确保摄像头和云服务器设备的兼容性 在连接本地摄像头到云服务器设备之前,首先要确保两者的兼容性。检查摄像头和云服务器设备的技术规格和接口类型,确保它们可以相互连接和通信。 2. 连接摄像头到云服务器设备 连接摄像头到云服务器设备的方法...
    99+
    2023-10-28
    摄像头 服务器 设备
  • 云服务器调用本地摄像头怎么设置密码保护
    如果您要在云服务器上调用摄像头,并设置摄像头的密码保护,您可以在本地登录云服务器后,打开“摄像头设置”选项,在该界面找到“密码保护设置”并打开。在“密码保护设置”窗口中,您可以设置摄像头登录时的密码,同时还可以设置摄像头的密码保护方式。您可...
    99+
    2023-10-26
    密码保护 摄像头 服务器
  • 云服务器调用本地摄像头失败
    云服务器调用本地摄像头失败通常有以下几种可能的原因: 摄像头配置错误:云服务器需要在远程主机上为其添加摄像头配置信息,如果这个配置不正确,就会出现这种情况。例如,如果您的摄像头需要远程访问,您需要配置一个本地登录路径,以避免将摄像头添加...
    99+
    2023-10-26
    摄像头 服务器
  • 如何将本地文件传到云服务器
    要将本地文件传输到云服务器,您可以按照以下步骤进行操作:1. 登录到您的云服务器。您可以通过SSH登录到您的云服务器。2. 在本地计...
    99+
    2023-09-16
    云服务器
  • RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器
    RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器 文章目录 RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器一、流媒体:...
    99+
    2023-09-04
    RTSP FFMPEG
  • 如何将Chrome本地安装的扩展应用导出到本地
    有时由于种种原因,我们不能直接使用Chrome web store进行Chrome扩展应用的安装,这时可以让一位已经安装了某Chrome扩展应用的朋友将他的应用导出到本地成为.crx文件,然后发给你,这样你就可以通过.crx文件进行离线安装...
    99+
    2023-06-03
  • 如何将S/4HANA系统存储的图片文件用Java程序保存到本地
    这期内容当中小编将会给大家带来有关如何将S/4HANA系统存储的图片文件用Java程序保存到本地,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我在S/4HANA的事务码MM02里为Material维护图片...
    99+
    2023-06-04
  • vue中如何下载文件导出保存到本地
    目录vue下载文件导出保存到本地另一种情况vue中a标签下载本地文件-未找到,原因及解决错误代码原因解决vue下载文件导出保存到本地 先分析如何下载:先有一个链接地址,然后使用 lo...
    99+
    2022-11-13
    vue下载文件 vue 导出文件 vue文件导出保存到本地
  • 小程序开发中如何保存文件到本地
    这篇文章主要为大家展示了小程序开发中如何保存文件到本地,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序开发中如何保存文件到本地”这篇文章吧。保存文件到本地。注意:saveFile 会把临时文件...
    99+
    2023-06-26
  • 如何将阿里云服务器迁移到本地
    1. 确定迁移计划和目标 在将阿里云服务器迁移到本地之前,首先需要明确迁移计划和目标。确定以下几个关键因素: 迁移时间:选择一个合适的时间窗口进行迁移,以确保最小化对业务的影响。 迁移方式:根据实际情况选择适合的迁移方式,例如使用物理迁...
    99+
    2023-10-27
    阿里 如何将 服务器
  • 云服务器调用本地摄像头怎么调
    如果您要调用云服务器上的摄像头,需要先在本地安装相应的摄像头驱动程序,下载并解压缩到指定路径,例如c:DocumentsandSettingsAdobeAdobe Camera StudioQuickTime/v2lib。 然后在命令行中...
    99+
    2023-10-26
    摄像头 服务器
  • 云服务器调用本地摄像头怎么设置密码保护功能
    登录云服务器管理界面,找到本地摄像头所在的IP地址,例如摄像头的IP地址是192.168.1.1。 在本地摄像头设置页面中,选择“获取Token”选项。 在获取Token的页面中,输入摄像头的唯一标识符(IP 地址),以及本地摄像头的 A...
    99+
    2023-10-28
    保护功能 摄像头 密码
  • RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器
    RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器 文章目录 RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器一、流媒体:RTSP 和 RTMP0、参考资料1、R...
    99+
    2023-08-18
    RTSP FFMPEG
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作