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

云南网站开发公司网站目录结构

云南网站开发公司,网站目录结构,湖南中虹羽建设工程有限公司网站,app开发公司怎么找到需要定制的客户在Android、前端或者别的平台的软件开发中,有时会遇到类似如下需求: 将某个图片显示到指定的区域;要求不改变图片本身的宽高比,进行缩放;要求最大限度的居中填充到显示区域。 以下示意图可以简单描绘该需求 以Androi…

在Android、前端或者别的平台的软件开发中,有时会遇到类似如下需求:

  1. 将某个图片显示到指定的区域;
  2. 要求不改变图片本身的宽高比,进行缩放;
  3. 要求最大限度的居中填充到显示区域。

以下示意图可以简单描绘该需求

在这里插入图片描述

以Android平台为例,如果我们的目标显示对象为Imageview,那么很简单,只要如下设置即可


<ImageView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:scaleType="fitCenter"android:src="@drawable/image" />

其中实现以上需求最关键的代码为 android:scaleType=“fitCenter”。感兴趣的同学可以去查看源码,探究scaleType属性设置为fitCenter之后底层代码是如何实现的。

但是,如果我们的显示区域只是一个自定义view中特定坐标的区域,如(x1, y1, x2, y2)的矩形区域。不了解Matrix的同学,可能第一反应就是根据图片本身的宽高以及目标显示区域的宽高,去计算一个缩放比,如下代码:

public void drawBitmapFillRegion(Canvas canvas, Bitmap bitmap, Rect targetRect) {// 目标区域的宽高int targetWidth = targetRect.width();int targetHeight = targetRect.height();// Bitmap 的宽高int bitmapWidth = bitmap.getWidth();int bitmapHeight = bitmap.getHeight();// 计算宽高比float scale = Math.max((float) targetWidth / bitmapWidth, (float) targetHeight / bitmapHeight);// 计算缩放后的宽高float scaledWidth = scale * bitmapWidth;float scaledHeight = scale * bitmapHeight;// 计算偏移float offsetX = targetRect.left + (targetWidth - scaledWidth) / 2;float offsetY = targetRect.top + (targetHeight - scaledHeight) / 2;// 设置 Matrix 进行缩放和平移Matrix matrix = new Matrix();matrix.setScale(scale, scale);matrix.postTranslate(offsetX, offsetY);// 绘制 Bitmapcanvas.drawBitmap(bitmap, matrix, null);
}

但是,当你深入研究Matrix中的方法,你就会发现,根本不需要这么麻烦,以下几句即可简单完美实现

public void drawBitmapFillRegion(Canvas canvas, Bitmap bitmap) {// 定义源矩形,即 Bitmap 的边界RectF srcRect = new RectF(0, 0, bitmap.getWidth(), bitmap.getHeight());RectF srcRect = new RectF(x1, y1, x2, y2);// 设置 Matrix 进行缩放和平移Matrix matrix = new Matrix();matrix.setRectToRect(srcRect, targetRect, Matrix.ScaleToFit.CENTER);// 绘制 Bitmapcanvas.drawBitmap(bitmap, matrix, null);
}

其中最关键的方法便是 setRectToRect,它可以计算出将某个矩形映射到另外一个矩形所需的矩阵,并将这个矩阵赋值给调用方。其实,Matrix还有很多使用强大的接口,感兴趣的同学可以系统深入探索下。尤其是工作学习当中涉及到图片缩放、裁剪、旋转、平移等操作的同学,更应该学习下。

http://www.hkea.cn/news/940068/

相关文章:

  • 网吧设计方案seox
  • 谁做网站市场营销专业
  • 慈溪外贸公司网站网络营销就业前景和薪水
  • 电商网站建设实训报告长沙网站seo推广公司
  • 阿里云ecs怎么建网站吉林网站seo
  • 企业营销型网站建设的可行性西安竞价托管
  • 做网站如何适应分辨率网站分析培训班
  • 现在币圈有那些私募网站做的好百度推广账号登陆入口
  • 旅游网站图片营销公司排名
  • 做服务器的网站都有哪些搜狗关键词排名此会zjkwlgs
  • php动态网站开发 唐四薪 答案b站引流推广网站
  • 长沙3天2晚自由行攻略论述搜索引擎优化的具体措施
  • 外汇局网站做结汇申报被逆冬seo课程欺骗了
  • 网站运营配置免费网站在线观看人数在哪直播
  • 什么网站做一手房好系统优化的例子
  • wordpress 插入wordseo排名点击工具
  • 网站推广易网宣seo的主要分析工具
  • 安徽网站定制最大免费广告发布平台
  • 怎么查网站有没有做404公司宣传网页怎么做
  • 靠谱营销网站开发选哪家seo的优点和缺点
  • 企业网站建设论文文献综述百度推广的广告真实可信吗
  • 企业网站优化方式广州最新消息今天
  • 旅游网站开发的意义seo优化方案案例
  • 山东做网站的公司seo数据分析哪些方面
  • 做网站用哪几个端口 比较好百度贴吧官网网页
  • 弹幕网站是怎么做的百度在线翻译
  • 独立网站域名代发关键词包收录
  • 如何建立门户网站百度可以发布广告吗
  • 网站开发毕设文献郑州网站优化顾问
  • 青海建设银行的官方网站自己制作网页的网站