在不同的分辨率下,Android字体大小怎么自适应分辨率的变化?


假设需要适应320x240,480x320分辨率。在res目录下新建文件夹values-320x240, values-480x320。然后在文件夹 values ,values-320x240 和 values-480x320 下新建xml文件dimens.xml,该xml文件内容如下:



<?xml version="1.0" encoding="utf-8"?>

14dip


针对不同的分辨率,btnTextSize的值不同。在布局文件中,用下面的方式引用该值:



   android:layout_height="wrap_content" android:gravity="center"

   android:id="@+id/lblSet" style="@style/btntext" android:textSize="@dimen/btnTextSize">


通过这种方法,可以方便设置在不同分辨率下,字体的大小了。当然,不仅仅字体大小,宽和高等其他的一些属性,也可以通过类似的方式来设置


layout中设置图片自适应大小,并且设置最大宽高,当图片的宽高大于设置的最大值时,宽高值为设置的最大值。



     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:adjustViewBounds="true"

     android:maxWidth="42dp"

     android:maxHeight="42dp"

     android:scaleType="fitCenter"

     android:layout_marginLeft="3dp"

     android:src="@drawable/icon"

     />


关键代码:


android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:adjustViewBounds="true"

android:maxWidth="42dp"

android:maxHeight="42dp"

本文出处:http://www.ablanxue.com/prone_4296_1.html



android:adjustViewBounds 
是否保持宽高比。需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。 

android:cropToPadding 
是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用,效果如下,实现代码见代码部分:





android:scaleType属性

ImageView.ScaleType.CENTER|android:scaleType="center" 以原图的几何中心点和ImagView的几何中心点为基准,按图片的原来size居中显示,不缩放,当图片长/宽超过View的长/宽,则截取图片的居中部分显示ImageView的size.当图片小于View 的长宽时,只显示图片的size,不剪裁。

ImageView.ScaleType.CENTER_CROP|android:scaleType="centerCrop以原图的几何中心点和ImagView的几何中心点为基准,按比例扩大(图片小于View的宽时)图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽),并按View的大小截取图片。当原图的size大于ImageView时,按比例缩小图片,使得长宽中有一向等于ImageView,另一向大于ImageView。实际上,使得原图的size大于等于ImageView

ImageView.ScaleType.CENTER_INSIDE|android:scaleType="centerInside" 以原图的几何中心点和ImagView的几何中心点为基准,将图片的内容完整居中显示,通过按比例缩小原来的size使得图片长(宽)等于或小于ImageView的长(宽)

ImageView.ScaleType.FIT_CENTER|android:scaleType="fitCenter" 把图片按比例扩大(缩小)到View的宽度,居中显示

ImageView.ScaleType.FIT_END|android:scaleType="fitEnd把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置

ImageView.ScaleType.FIT_START|android:scaleType="fitStart把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置

ImageView.ScaleType.FIT_XY|android:scaleType="fitXY" 把图片按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满View.

ImageView.ScaleType.MATRIX|android:scaleType="matrix" 用matrix来绘制

 

依本人之见,scaletype的种类分为三类matrix(默认)、fit-X类、和center类。matrix就不多说。fit-X类中,
fitStart、fitCenter和fitEnd之间的都是根据需要使原图改变对ImgView进行适应,不剪裁,按matrix进行绘制,但它们
的区别在于基准不同。fitStart的基准为最上角的点(即matrix方式开始的点)fitCenter的基准点为中间的点
(matrix方式中可以使图片居中的点),而fitEnd的基准点为右下角的点(即matrix方式最后绘制点)。center类
中,center、centerCrop、centerInside都是以原图的几何中心点和ImagView的几何中心点为基准,且只绘制
ImagView大小的图像,不同的是是否保持原图大小和绘图的目标不同、采取的手段不同


更多相关文章

  1. 【Android(安卓)Developers Training】 59. 管理图片存储
  2. 解决ImageView加载本地图片方向不对的问题
  3. 天天记录 - Android(安卓)ListView加载图片
  4. android相机开发setParameters failed错误
  5. Android中保存图片到本地功能实现
  6. Android网页WebView图片文件上传的问题
  7. android讲义2之简单图片浏览器且有截图效果(对ImageView使用)
  8. android中打开相机、打开相册进行图片的获取示例
  9. 教你搞定Android自定义ViewGroup

随机推荐

  1. Android使用SQLite数据库(1)
  2. android 随手记之文件+参数上传请求
  3. 清单文件Manifest中的android:name
  4. android开发出现No Launcher activity fo
  5. 关于android原生Webview的一些属性整理(持
  6. Android开发错误信息与解决方案汇总
  7. Android之录制视频文件
  8. android 源代码研究之----frameworks----
  9. Android 不休眠 不锁屏
  10. Android for x86