- 浏览: 247140 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
-
你的样子越来越美:
楼主是来炫耀的。
java图片处理解决方案 -
di1984HIT:
关注一下。
hypertable安装 -
di1984HIT:
katta好久不更新了。
Katta源码分析(1)--显示节点 -
tracyitbird:
谢谢博主,很好说的很明白。不过一般bin的环境变量已经配置好了 ...
解决Hadoop报Name node is in safe mode 错误 -
凌寒_微雨:
总结的很好
android 笔记——listView应用
Android中几种图像特效处理的小技巧,比如圆角,倒影,还有就是图片缩放,Drawable转化为Bitmap,Bitmap转化为Drawable等等.
废话少说了,直接讲解今天的实例,本例主要是先获取壁纸(getWallpaper()),然后对当前壁纸的一些特效处理.大家按步骤一步一步来:
第一步:新建一个Android工程命名为ImageDemo,工程结构如下:
第二步:新建一个.java文件,命名为ImageUtil.java,在里面定义一些图片处理方法,代码如下:
第三步:修改main.xml布局文件,主要放了两个ImageView控件,代码如下:
第四步:修改主核心程序,ImageDemo.java,代码如下:
第五步:运行上述工程,查看效果如下:
OK大功告成了!!
废话少说了,直接讲解今天的实例,本例主要是先获取壁纸(getWallpaper()),然后对当前壁纸的一些特效处理.大家按步骤一步一步来:
第一步:新建一个Android工程命名为ImageDemo,工程结构如下:

第二步:新建一个.java文件,命名为ImageUtil.java,在里面定义一些图片处理方法,代码如下:
package com.android.tutor; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Bitmap.Config; import android.graphics.PorterDuff.Mode; import android.graphics.Shader.TileMode; import android.graphics.drawable.Drawable; public class ImageUtil { //放大缩小图片 public static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); float scaleWidht = ((float)w / width); float scaleHeight = ((float)h / height); matrix.postScale(scaleWidht, scaleHeight); Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); return newbmp; } //将Drawable转化为Bitmap public static Bitmap drawableToBitmap(Drawable drawable){ int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.createBitmap(width, height, drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0,0,width,height); drawable.draw(canvas); return bitmap; } //获得圆角图片的方法 public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){ 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); 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; } //获得带倒影的图片方法 public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap){ final int reflectionGap = 4; int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); matrix.preScale(1, -1); Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0, height/2, width, height/2, matrix, false); Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height/2), Config.ARGB_8888); Canvas canvas = new Canvas(bitmapWithReflection); canvas.drawBitmap(bitmap, 0, 0, null); Paint deafalutPaint = new Paint(); canvas.drawRect(0, height,width,height + reflectionGap, deafalutPaint); canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null); Paint paint = new Paint(); LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP); paint.setShader(shader); // Set the Transfer mode to be porter duff and destination in paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); // Draw a rectangle using the paint with our linear gradient canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint); return bitmapWithReflection; } }
第三步:修改main.xml布局文件,主要放了两个ImageView控件,代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/image01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10px" /> <ImageView android:id="@+id/image02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10px" /> </LinearLayout>
第四步:修改主核心程序,ImageDemo.java,代码如下:
package com.android.tutor; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.widget.ImageView; public class Imagedemo extends Activity { private ImageView mImageView01,mImageView02; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setupViews(); } private void setupViews(){ mImageView01 = (ImageView)findViewById(R.id.image01); mImageView02 = (ImageView)findViewById(R.id.image02); //获取壁纸返回值是Drawable Drawable drawable = getWallpaper(); //将Drawable转化为Bitmap Bitmap bitmap = ImageUtil.drawableToBitmap(drawable); //缩放图片 Bitmap zoomBitmap = ImageUtil.zoomBitmap(bitmap, 100, 100); //获取圆角图片 Bitmap roundBitmap = ImageUtil.getRoundedCornerBitmap(zoomBitmap, 10.0f); //获取倒影图片 Bitmap reflectBitmap = ImageUtil.createReflectionImageWithOrigin(zoomBitmap); //这里可以让Bitmap再转化为Drawable // Drawable roundDrawable = new BitmapDrawable(roundBitmap); // Drawable reflectDrawable = new BitmapDrawable(reflectBitmap); // mImageView01.setBackgroundDrawable(roundDrawable); // mImageView02.setBackgroundDrawable(reflectDrawable); mImageView01.setImageBitmap(roundBitmap); mImageView02.setImageBitmap(reflectBitmap); } }
第五步:运行上述工程,查看效果如下:

OK大功告成了!!
发表评论
-
android -- 笔记
2011-08-26 14:32 0System.out.println(tm.getDevice ... -
android 笔记 --- android:paddingLeft与android:layout_marginLeft的区别
2011-05-31 15:47 3442当按钮分别设置以上两个属性时,得到的效果是不一样的。 and ... -
android 笔记 --- ImageView的属性android:scaleType
2011-05-27 18:40 6454ImageView的属性android:scaleType,即 ... -
android 笔记 --- 位图和矢量图区别
2011-05-27 11:29 5065位图和矢量图是计算机 ... -
android 笔记 --- 适配不同分辨率的Android手机
2011-05-27 11:25 3228一:不同的layout Android手机屏幕大小不一,有4 ... -
android 笔记 --- Android系统中SD卡各文件夹功能详解
2011-05-24 14:46 2750对于初次使用Android系统 ... -
android 笔记 --- Android的PackageManager和ActivityManager的功能简介
2011-05-24 14:40 1904Android系统为应用管理功能提供了大量的API。根据功能的 ... -
android 笔记 --- InputFilter实现EditText文本输入过滤器
2011-05-23 16:19 10235EditText是Android的文本输入框控件,这地球人应该 ... -
android 笔记 --- 让Android的输入框与文本框带滚动条ScrollView
2011-05-23 16:18 3684我们都知道EditText与TextView是Android的 ... -
android 笔记 --- Android自动判断输入是电话,网址或者Email的方法—-Linkify的应用
2011-05-23 16:16 3965本节要讲的是,当我们在一个EditText输入电话或者网址还是 ... -
android 笔记 --- Android SimpleAdapter
2011-05-23 16:12 2016列表(ListView)、表格(GridView),这在手机应 ... -
android 笔记 --- Android安全机制之设备管理
2011-05-23 16:08 1956Andoid安全机制包括两个层次:系统层和应用层。应用层的安全 ... -
android 笔记 --- Android-图片透明度处理代码
2011-05-23 16:07 2331/** * 图片透明度处理 * * @pa ... -
android 笔记 --- Android大TXT文本文档读取
2011-05-23 16:03 8118由于现在TXT文本很多,特别是好多小说也是以这个文件格式出现, ... -
android 笔记 --- 自定义Android主题风格theme.xml方法
2011-05-23 15:51 3081在Android中可以通过自定义主题风格方式来实现个性化以及复 ... -
android 笔记 --- Android中Menu应用
2011-05-23 15:48 1232Android menu是Android开发中经常使用的,下面 ... -
android 笔记 --- Android中Handler,Looper,HandlerThread
2011-05-23 15:46 1916Handler提供了一种消息机制用于线程间的通信。 默认情况下 ... -
android 笔记 --- Android Shadow 阴影制作
2011-05-23 15:41 5727在Android View 中, 要制作阴影, 可以利用 P ... -
android 笔记 --- 分辨率大全
2011-05-23 15:40 1528对于Android游戏开发我们 ... -
android 笔记 --- Android Bitmap 建立或取得的方法
2011-05-23 15:12 2265Android 要建立或取得Bitmap 的方式, 目前, ...
相关推荐
android 图像处理滤镜 照亮边缘特效 无闪烁启动画面 Android实现《天女散花》效果--(带源码) 天天动听 半透明Menu效果 Android 小項目之---Iphone拖动图片特效 (附源码) 一个完整的新浪微博客户端android版OAuth...
本章将重点介绍几种常用的图像特效处理方法,包括灰度处理、底板效果、马赛克、毛玻璃效果、图像融合、图片着色、边缘检测、浮雕效果以及优化效果。 #### 二、图像特效的学习方法 本章节将从以下几个方面详细介绍...
在提供的压缩包中,有以下几个关键文件: - **index.html**:这是项目的主页面,包含了HTML结构和Jplayer的基本配置。开发者通常会在此文件中找到如何设置播放器的示例代码。 - **js** 文件夹:包含Jplayer的...
响应式网页设计是一种现代网页开发技术,它使得网页可以适应不同设备的屏幕尺寸,包括桌面电脑、笔记本、平板电脑和手机。"简洁价格参数列表响应式网页模板" 是专为展示产品价格和参数而设计的一种网页布局,它具有...
c语言学习
人脸识别项目源码实战
人脸识别项目源码实战
本图书进销存管理系统管理员功能有个人中心,用户管理,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理,我的收藏管理。 用户功能有个人中心,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得图书进销存管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高图书进销存管理系统管理效率。 关键词:图书进销存管理系统;Spring Boot框架;MYSQL数据库
基于动态规划和模型预测控制的并联混合电动汽车最佳控制 简介:利用动态规划,使用模型预测控制,实现对并联混合动力电动汽车的最佳控制,并降低总体成本函数 使用动态规划可以实现混合动力电动汽车的优化控制 混合动力电动汽车的模型预测控制是通过使用动态规划在缩短的时域内实现的 代码为纯matlab脚本,附带说明电子文档 ,并联混合电动汽车; 动态规划; 模型预测控制; 最佳控制; 总体成本函数; Matlab脚本。,动态规划与模型预测控制在并联混合动力电动汽车的最优控制策略
人脸识别项目实战
2025 DeepSeek技术全景解析-重塑全球AI生态的中国力量.pdf
能够爬取非会员视频和音频资源,可通过ffmpeg等工具将视频资源和音频资源合并
基于差分进化算法DE的机器人路径规划 本产品基于优化的差分进化算法,专为机器人山地路径规划而设计 通过模拟差分进化过程中的变异、交叉与选择机制,算法能够智能探索并确定最优行进路线,全面考量路径长度、能量消耗及地形适应性 优化之处在于融合了动态差分权重与精英保留策略,显著增强了算法的搜索效率和求解质量,有效规避了早熟收敛的风险 该算法在山地这一复杂且多变的自然环境中展现出卓越性能,完美适配于机器人探险、山地救援、环境监测等多种应用场景 我们矢志为用户提供卓越、稳健的机器人路径规划方案,推动各类山地作业迈向更为精确与高效的路径规划新时代 ,差分进化算法DE; 机器人路径规划; 山地路径规划; 算法优化; 早熟收敛风险规避; 山地探险应用场景; 环境监测场景。,DE算法赋能机器人,优化山地路径规划方案
情侣游戏情侣飞行棋10元真心话大冒险情侣情趣骰子php源码 ----- 程序特色 ----- 1、完整的分销制度,可自定义多种不同的返佣比例 2、支持情侣飞行棋、情趣骰子,多种等级 3、无感微信自动授权登录,支持微信第三方授权登录 4、完全开源无加密
HeidiSQL的12.2.0.6576安装压缩包
监护人,小孩和玩具数据集 4647张原始图片 监护人 食物 孩子 玩具 精确率可达85.4% yolov5pytorch格式
本课程是 PHP 进阶系列之 Swoole 入门精讲,系统讲解 Swoole 在 PHP 高性能开发中的应用,涵盖 协程、异步编程、WebSocket、TCP/UDP 通信、任务投递、定时器等核心功能。通过理论解析和实战案例相结合,帮助开发者掌握 Swoole 的基本使用方法及其在高并发场景下的应用。 适用人群: 适合 有一定 PHP 基础的开发者、希望提升后端性能优化能力的工程师,以及 对高并发、异步编程感兴趣的学习者。 能学到什么: 掌握 Swoole 基础——理解 Swoole 的核心概念,如协程、异步编程、事件驱动等。 高并发处理——学习如何使用 Swoole 构建高并发的 Web 服务器、TCP/UDP 服务器。 实战项目经验——通过案例实践,掌握 Swoole 在 WebSocket、消息队列、微服务等场景的应用。 阅读建议: 建议先掌握 PHP 基础,了解 HTTP 服务器和并发处理相关概念。学习过程中,结合 官方文档和实际项目 进行实践,加深理解,逐步提升 Swoole 开发能力。
机器人先进视觉赛-基于深度学习yolov8的3D识别项目源码含gui界面(最新发布).zip 实现机器人的3D目标识别和分割功能 支持深度图像的处理和分析 【资源详情说明】 【1】该项目为近期精心打造开发,完整代码。同时,配套资料一应俱全,涵盖详细的设计文档 【2】项目上传前源码经过严格测试,在多种环境下均能稳定运行,功能完善且稳定运行,技术研究、教学演示还是项目实践,都能轻松复现,节省时间和精力。 【3】本项目面向计算机相关专业领域的各类人群,对于高校学生,可作为毕业设计、课程设计、日常作业的优质参考;对于科研工作者和行业从业者,可作为项目初期立项演示,助力快速搭建原型,验证思路。 【4】若具备一定技术基础,可在此代码上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 【5】小白,在配置环境或运行项目时遇到困难,可提供远程指导和全方位技术支持。 欢迎下载学习本项目资源,期待与你共同探讨技术问题,交流项目经验!
Matlab实现TSO-XGBoost多变量回归预测 Matlab实现TSO-XGBoost多变量回归预测,金枪鱼算法优化XGBoost多变量回归预测 1.data为数据集,7个输入特征,1个输出特征 2.MainTSO XGboost.m为主程序文件,其他为函数文件,无需运行 3.命令窗口输出R2、MAE、MAE和RMSEP等评价指标,可在下载区获取数据和程序内容 注意程序和数据放在一个文件夹,文件夹不可以XGBoost命名,因为有函数已经用过,运行环境为 Matlab2018及以上,预测效果如下 ,TSO-XGBoost; 多变量回归预测; Matlab实现; 金枪鱼算法优化; 评价指标; 预测效果; 文件夹结构; 运行环境,Matlab中TSO-XGBoost多变量回归预测优化实践
实时音视频SRT协议中文完整版