圆形图
来源:互联网 发布:微信业务域名 编辑:程序博客网 时间:2024/04/30 05:01
导包compile 'de.hdodenhof:circleimageview:2.1.0'加载它的工具package com.sxzqsc.cfzone.utils;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.drawable.Drawable;import android.media.ExifInterface;import android.net.Uri;import android.os.Environment;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.ImageView;import android.widget.Toast;import com.bumptech.glide.Glide;import com.bumptech.glide.request.animation.GlideAnimation;import com.bumptech.glide.request.target.SimpleTarget;import com.bumptech.glide.signature.StringSignature;import com.sxzqsc.cfzone.AppContext;import com.sxzqsc.cfzone.R;import com.sxzqsc.cfzone.view.GlideCircleTransform;import java.io.BufferedOutputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/** * Created by Administrator on 2017/2/9. */public class BitmapHelper { public static void displayImageCommonPlaceHolder(ImageView imageView,String url){ try { Glide.with(UIUtils.getContext()).load(url).placeholder(R.drawable.common_loading).error(R.drawable.common_error).into(imageView); }catch (Exception e) { e.printStackTrace(); LogUtils.d("加载图片出错"+e.toString()); } } public static void displayImageNoCache(ImageView imageView,String url,String sign){ try{ Glide.with(UIUtils.getContext()) .load(url) .signature(new StringSignature(sign)). into(imageView); }catch (Exception e){ e.printStackTrace(); LogUtils.d("加载图片出错" + e.toString()); } } public static void displayImage(ImageView imageView, String url){ try{ Glide.with(UIUtils.getContext()) .load(url). into(imageView); }catch (Exception e){ e.printStackTrace(); LogUtils.d("加载图片出错" + e.toString()); } } //加载圆形头像传入circleView public static void displayHeadImage(ImageView circleImageView ,String url){ try{ Glide.with(UIUtils.getContext()) .load(url) .dontAnimate() .placeholder(R.drawable.default_avatar) .error(R.drawable.default_avatar) .transform(new GlideCircleTransform(UIUtils.getContext())) .into(circleImageView); }catch (Exception e){ e.printStackTrace(); LogUtils.d("加载头像图片出错" + e.toString()); } } //乐8直播占位图和错误图 public static void displayHappyLiveImage(ImageView imageView, String filePath){ try { Glide.with(UIUtils.getContext()).load(filePath).placeholder(R.drawable.common_loading_happy).error(R.drawable.common_error_happy).into(imageView); } catch (Exception e) { e.printStackTrace(); } } public static void compressBmpFromBmp(Bitmap image, File file) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 80, baos); try { // FileOutputStream fos = new FileOutputStream(file); fos.write(baos.toByteArray()); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } public static void displayNewsBigImage(ImageView imageView, String url,int placeholder,int resourceError) { try { Glide.with(UIUtils.getContext()).load(url).placeholder(placeholder).error(resourceError).into(imageView); } catch (Exception e) { e.printStackTrace(); LogUtils.d("加载图片出错" + e.toString()); } } public static void displayHeadImageBig(ImageView imageView, String url) { try { Glide.with(UIUtils.getContext()).load(url).centerCrop().placeholder(R.drawable.default_avatar).into(imageView); } catch (Exception e) { e.printStackTrace(); LogUtils.d("加载图片出错" + e.toString()); } } public static void displayNewsSmallImage(ImageView imageView, String url) { try { Glide.with(UIUtils.getContext()).load(url).placeholder(R.drawable.common_news_loading_small).error(R.drawable.common_news_error_small).into(imageView); } catch (Exception e) { e.printStackTrace(); LogUtils.d("加载图片出错" + e.toString()); } } public static Bitmap getViewBitmap_ARGB565(View view, int width, int height){ Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); view.draw(new Canvas(bitmap)); return bitmap; } public static void saveImageToGallery(final Context context, final String url){ if(TextUtils.isEmpty(url)){ UIHelper.showToast(context,"无效图片"); return ; } Glide.with(context).load(url).asBitmap().into(new SimpleTarget<Bitmap>() { @Override public void onLoadFailed(Exception e, Drawable errorDrawable) { UIHelper.showToast(context,"无效图片"); } @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { saveBitmapToGallery(context,resource,url); } }); } public static void saveBitmapToGallery(Context context, Bitmap bmp, String url) { if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ Toast.makeText(context, "未找到sd卡,图片无法存储", Toast.LENGTH_SHORT).show(); return; } if(TextUtils.isEmpty(url) || bmp == null || bmp.getWidth() <= 0 || bmp.getHeight() <= 0){ Toast.makeText(context, "无效的图片", Toast.LENGTH_SHORT).show(); return; } // 图片目录 File appDir = new File(Environment.getExternalStorageDirectory() .getAbsolutePath() + "/chuangfenzone", "chuangfen_image"); if (!appDir.exists()) { // 创建目录 appDir.mkdirs(); } String imageName = url.substring(url.lastIndexOf("/"), url.length()); File file = new File(appDir, imageName); try { FileOutputStream fos = new FileOutputStream(file); bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 通知图库更新 context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file))); Toast.makeText(context, "图片已保存至" + file.getAbsolutePath(), Toast.LENGTH_LONG).show(); } public static Bitmap ImageRotate(String filePath) { Bitmap bm = BitmapFactory.decodeFile(filePath); ExifInterface exif = null; try { exif = new ExifInterface(filePath); } catch (IOException e) { e.printStackTrace(); exif = null; } int degree = 0; if (exif != null) { // 读取图片中相机方向信息 int ori = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); Log.d("rotate", "ImageRotate: " + ori); // 计算旋转角度 switch (ori) { case ExifInterface.ORIENTATION_ROTATE_90: degree = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: degree = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: degree = 270; break; default: degree = 0; break; } } if (degree != 0) { // 旋转图片 Matrix m = new Matrix(); m.postRotate(degree); return Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), m, true); } return null; } public static File saveBitmapFile(Bitmap bitmap, String fileName) { File file = new File(fileName);//将要保存图片的路径 try { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos); bos.flush(); bos.close(); } catch (IOException e) { e.printStackTrace(); } return file; } /** 保存方法 */ public static void saveBitmap(Context context ,String url) {// Bitmap bm = null;// url = "https://w.meiyouka.com/Data/avatar/585cca06dca30_200x200.png"; try{ Glide.with(AppContext.getContext()).load(url).asBitmap().into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap bm, GlideAnimation<? super Bitmap> glideAnimation) { if(bm != null) { LogUtils.d("保存图片"); File f = new File("/sdcard", "cfzoneshare.jpg"); if (f.exists()) { f.delete(); } try { FileOutputStream out = new FileOutputStream(f); bm.compress(Bitmap.CompressFormat.PNG, 90, out); out.flush(); out.close(); LogUtils.d("已经保存"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ LogUtils.d("保存图片bitmap为空"); } } }); }catch (Exception e){ e.printStackTrace(); } }}
0 0
- 圆形图
- 圆形图
- 圆形图
- 圆形切图
- 图片切成圆形图
- Android圆形图/头像
- 圆形动态分配图
- 自定义圆形图
- 自定义ImageView圆形图
- WaveView 圆形波浪图
- 圆形切图
- echarts 圆形图(比例)
- jQuery圆形百分比图
- 圆形
- 圆形平均分算法(图)
- iOS - 创建圆形切图
- Glide 使用 +圆形图+圆角图
- Glide 使用 +圆形图+圆角图
- 403. Frog Jump
- xshell快捷键使用
- yum使用
- Struts2的核心配置文件
- POJ
- 圆形图
- 思维拓展
- 160
- hihoCoder hiho一下 第148周--Font Size (模拟)
- rpm使用
- 最短路径算法 地杰斯特拉算法
- 【厚积薄发】编程技术总结7—封装、继承、多态简介
- Java中的Lab和RGB的相互转换
- jdbc连接