- 浏览: 2203661 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
给图片加上圆角效果好看多了。
加圆角,Drawable,Bitmap,BitmapDrawable,字节数组之间的相互转换。
时间类:
加圆角,Drawable,Bitmap,BitmapDrawable,字节数组之间的相互转换。
public class ImageUtil { public static InputStream getRequest(String path) throws Exception { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); if (conn.getResponseCode() == 200){ return conn.getInputStream(); } return null; } public static byte[] readInputStream(InputStream inStream) throws Exception { ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[4096]; int len = 0; while ((len = inStream.read(buffer)) != -1) { outSteam.write(buffer, 0, len); } outSteam.close(); inStream.close(); return outSteam.toByteArray(); } public static Drawable loadImageFromUrl(String url){ URL m; InputStream i = null; try { m = new URL(url); i = (InputStream) m.getContent(); } catch (MalformedURLException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Drawable d = Drawable.createFromStream(i, "src"); return d; } public static Drawable getDrawableFromUrl(String url) throws Exception{ return Drawable.createFromStream(getRequest(url),null); } public static Bitmap getBitmapFromUrl(String url) throws Exception{ byte[] bytes = getBytesFromUrl(url); return byteToBitmap(bytes); } public static Bitmap getRoundBitmapFromUrl(String url,int pixels) throws Exception{ byte[] bytes = getBytesFromUrl(url); Bitmap bitmap = byteToBitmap(bytes); return toRoundCorner(bitmap, pixels); } public static Drawable geRoundDrawableFromUrl(String url,int pixels) throws Exception{ byte[] bytes = getBytesFromUrl(url); BitmapDrawable bitmapDrawable = (BitmapDrawable)byteToDrawable(bytes); return toRoundCorner(bitmapDrawable, pixels); } public static byte[] getBytesFromUrl(String url) throws Exception{ return readInputStream(getRequest(url)); } public static Bitmap byteToBitmap(byte[] byteArray){ if(byteArray.length!=0){ return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); } else { return null; } } public static Drawable byteToDrawable(byte[] byteArray){ ByteArrayInputStream ins = new ByteArrayInputStream(byteArray); return Drawable.createFromStream(ins, null); } public static byte[] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); } public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } /** * 图片去色,返回灰度图片 * @param bmpOriginal 传入的图片 * @return 去色后的图片 */ public static Bitmap toGrayscale(Bitmap bmpOriginal) { int width, height; height = bmpOriginal.getHeight(); width = bmpOriginal.getWidth(); Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); Canvas c = new Canvas(bmpGrayscale); Paint paint = new Paint(); ColorMatrix cm = new ColorMatrix(); cm.setSaturation(0); ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm); paint.setColorFilter(f); c.drawBitmap(bmpOriginal, 0, 0, paint); return bmpGrayscale; } /** * 去色同时加圆角 * @param bmpOriginal 原图 * @param pixels 圆角弧度 * @return 修改后的图片 */ public static Bitmap toGrayscale(Bitmap bmpOriginal, int pixels) { return toRoundCorner(toGrayscale(bmpOriginal), pixels); } /** * 把图片变成圆角 * @param bitmap 需要修改的图片 * @param pixels 圆角的弧度 * @return 圆角图片 */ public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = pixels; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; } /** * 使圆角功能支持BitampDrawable * @param bitmapDrawable * @param pixels * @return */ public static BitmapDrawable toRoundCorner(BitmapDrawable bitmapDrawable, int pixels) { Bitmap bitmap = bitmapDrawable.getBitmap(); bitmapDrawable = new BitmapDrawable(toRoundCorner(bitmap, pixels)); return bitmapDrawable; } }
时间类:
public class TimeUtil { public static String converTime(long timestamp){ long currentSeconds = System.currentTimeMillis()/1000; long timeGap = currentSeconds-timestamp;//与现在时间相差秒数 String timeStr = null; if(timeGap>24*60*60){//1天以上 timeStr = timeGap/(24*60*60)+"天前"; }else if(timeGap>60*60){//1小时-24小时 timeStr = timeGap/(60*60)+"小时前"; }else if(timeGap>60){//1分钟-59分钟 timeStr = timeGap/60+"分钟前"; }else{//1秒钟-59秒钟 timeStr = "刚刚"; } return timeStr; } public static String getStandardTime(long timestamp){ SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm"); Date date = new Date(timestamp*1000); sdf.format(date); return sdf.format(date); } }
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 634本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1110颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 1004从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1180Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1019Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 847前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 936监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 807在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 978最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1343##MediaQuery MediaQuery.of(con ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1140当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 789setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1522问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 780底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1791点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1382import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2336TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1566一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 879Flutter最近很火,我抽出了一点时间对Flutter进行了 ... -
关于android O 上 NotificationChannel 的一些注意事项
2019-07-04 11:47 940最近在适配android O,遇到个问题,应用中原本有设置界面 ...
相关推荐
这个工具类通常会涉及到用户选择图片、处理图片(如圆角剪裁)、显示预览以及保存结果等核心功能。在"安卓头像制作图片圆角剪裁相关-兼容Android7.0的图片选择工具类.rar"中,我们可能找到以下关键知识点: 1. **...
在Android应用开发中,UI设计往往需要实现各种各样的图形效果,其中圆角矩形和圆形图片是最常见的需求之一。`RoundRectLayout`是专门为解决此类问题而设计的一个自定义布局,它允许开发者轻松地创建具有任意圆角和...
5. **图片处理工具类**:可能包括图片的加载、缩放、裁剪、圆角处理等功能,如`ImageUtil`,可以优化图片加载的性能,避免内存溢出。 6. **文件操作工具类**:如`FileUtil`,提供文件的创建、删除、复制、移动、...
Android图片处理工具类,包括: 图片查看、照片墙、bitmap转存、圆角、剪切、图片加载缓存、图片压缩等 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,...
- `Glide`或`Picasso`是常见的图片加载库,通过工具类可以实现图片的加载、裁剪、圆角处理等功能,并能处理内存和磁盘缓存,防止内存溢出。 4. **权限管理工具类**: - 针对Android 6.0(API 23)以上的运行时...
在Android开发中,图片加载库Glide是广泛使用的工具,它能够高效地处理图片的加载、缓存和显示。在一些设计中,我们可能需要将图片显示为圆形或者具有特定圆角的效果,以达到更好的视觉体验。本篇将详细介绍如何使用...
Android代码处理视图圆角和色彩的工具类,供大家参考,具体内容如下 一直都用的.XML文件处理圆角与色彩或色彩渐变,觉得很不方便,后来发现了GradientDrawable这个类,就整了个工具类,用起来觉得挺方便 效果图: ...
3. **图片处理工具类**:在Android应用中,图片加载和处理是必不可少的,比如图片的缩放、裁剪、圆角转换等。 Glide 和 Picasso 是两个常用的图片加载库,它们不仅能够优化内存管理,还能实现图片的缓存策略,提高...
还可能有一个`BannerUtils`工具类,包含了处理圆角的函数。在实现圆角效果时,通常有两种方式: 1. 自定义视图:通过继承`ImageView`或者框架提供的轮播项视图,重写`onDraw()`方法,使用`Canvas`的`drawRoundRect...
5. **图片处理**:如图片裁剪、缩放、圆角处理,以及像Glide、Picasso这样的图片加载库的封装,优化图片显示。 6. **权限管理**:针对Android 6.0(API 23)及以上版本的动态权限申请的工具类,简化权限申请流程。 ...
在Android开发中,创建具有指定圆角的ViewGroup是一个常见的需求,这可以帮助开发者设计出更加美观和具有现代感的用户界面。"Android-可以指定圆角的ViewGroup"这个主题聚焦于如何在Android应用中实现自定义的布局,...
3. **复用性**:创建一个通用的工具类或组件,使得开发者可以通过简单的API调用就能轻松地为任何文本添加圆角背景。 4. **性能优化**:考虑到性能,避免在每次更新时都重新绘制Drawable,可以利用缓存机制提高效率。...
android端对图片的一些处理功能: 图片去色,返回灰度图片 去色同时加圆角 把图片变成圆角 使圆角功能支持BitampDrawable 读取路径中的图片,然后将其转化为缩放后的bitmap 保存图片为PNG 保存图片为JPEG 图片合成
4. **图片处理工具类**: - `ImageLoader`:用于加载、缓存和显示图片,可能包括从网络、本地文件系统或资源加载图片,并支持图片的缩放、裁剪和圆角处理。 5. **文件操作工具类**: - `FileUtils`:提供了文件的...
这个名为"Android应用源码之Image(图片工具类大全)_源码.zip"的压缩包文件显然包含了用于处理图片的各种工具类,这些工具类可以帮助开发者高效地管理和操作应用中的图像资源。下面我们将深入探讨其中可能涉及的关键...
这个"自定义圆角图片Demo"项目就是一个很好的实践,它涵盖了如何自定义一个ImageView来实现图片显示为圆角,以及如何处理可能出现的锯齿问题。在本文中,我们将深入探讨这两个关键知识点。 首先,让我们来看看如何...
在Android开发中,ImageView是用于显示图像的常见组件,它广泛应用于各种场景,如用户头像、应用图标等。在实际应用中,我们不仅需要显示本地资源...在实际项目中,这样的类可以作为通用的工具类,方便在多个地方复用。
在Android开发中,为了提升应用界面的美观度和用户体验,我们常常需要对图片进行圆角化处理。这个程序就是专门针对这一需求而设计的,它能够将原本矩形的图片转换为具有圆角的图像。圆角的大小可以根据开发者的需求...
4. **图片加载工具类**:如`Glide`、`Picasso`等,它们用于高效地加载和显示网络或本地的图片,支持缓存、裁剪、圆角处理等功能,避免内存溢出。 5. **权限管理工具类**:在Android 6.0及以上版本,需要动态申请...