zoukankan      html  css  js  c++  java
  • Android ImageButton图像完全填充缩放到控件

    如果你发现你写程序的时候像我一样,发现图片怎么都无法拉伸填充到ImageButton 里面。而且就算能缩放到控件,但是图像较小,而且总会在 ImageButton周围有一圈边框!当你遇到这一些列问题的这时候你就可以收藏并吸收这个经验了.

    总的过程:我先给出关键代码→ 分析给出的两种解决方案→ 我详细介绍一下边框出现的原因个解决办法。→ 最后就是些注意事项了

    Android ImageButton图像完全填充缩放到控件
     

    工具/原料

    • 遇到问题尽可能冷静下来的心情。

    • 记住收藏好我这条经验。

    • ImageButton的长宽最好是固定的。注意事项里面我会告诉你为什么

    关键代码

    1. 1

      第一种解决方案:

      android:scaleType="fitXY"//这个代码是:拉伸图片(不按比例)以填充的长宽。所以图像最后最好多多少少会失真的.这点你要注意

      android:background="#e0000000"//这是解决图像缩放后图像周围有一圈边框.是使边框变透明,以去掉边框.如下图

      第二种解决方案:

      android:src="@drawable/miss"  改为  android:background="@drawable/miss" 有了这一步可以替代上面两步,同时解决边框的和完整缩放填充到控件问题

      下一步具体介绍给大家分析一下图像完整缩放填充到控件的方法,和填充后出现边框的问题

      Android ImageButton图像完全填充缩放到控件
      END

    怎么进行缩放填充图像到ImageButton

    1. 1

      android:scaleType="fitXY

      android:scaleType  设置图像的填充方式

       fitXY             把图片不按比例扩大/缩小到View的大小显示

      说一下要注意的:

      这么做的话,如果控件的长宽比和图像的长宽比不同的话就与比较严重的失真。所以要多注意一下.尤其是多分辨率适配的时候。多做真机调试

      使用这个方法填充的时候是必须配合android:src来使用的。对于android:background是无效的.

    2. 2

      android:src="@drawable/miss"  改为  android:background="@drawable/miss"

      首先background是填充背景的属性。指定后会根据ImageView组件给定的长宽进行拉伸。

      而边框的存在就是因为背景的存在。所以能替代第一种解决方案

      (src是图像内容(前景),background是背景,可以同时使用。)

      END

    ImageButton 有银灰色边框的原因和解决方案

    1.  

      原因就是ImageButton 默认就是有边框的。或者可以说会预留出一部分背景。

      这样可以更好给用户一个使用反馈。点击的时候,背景就会有颜色变化。是个很好的集成方案。当然,对于现在界面美化的发展。那么美的界面下,按钮周围会有一圈边框实在是太丑了.

      而且我们一般在src指定原图,但是src不会进行拉伸。所以才会出现边框

    2.  

      解决方案:

      android:background="#e0000000"//这是解决图像缩放后图像周围有一圈边框.是使边框变透明

      或者你可以

      android:src="@drawable/miss"  改为  android:background="@drawable/miss

      第一种呢是使其透明化(其实android:background="@null"也是可以的)

      第二种呢就更直接了。直接改变背景。

    3. 3

      好了,到这里就我就把我所遇到的问题总结之后把解决方案都告诉你的都告诉你了.

      END

    注意事项

    • 关于ImageButton长宽固定:因为系统会先判断图像宽和高。如果控件不固定,而且相对图像来说控件太小的话,就会出现:系统会根据控件长和宽能向外拉伸的最大值(当然,指定fitXY后是不会超过图像的长和宽的)进行拉伸控件然后缩放填充到控件大小

      转自:http://jingyan.baidu.com/article/90895e0f97ff7b64ec6b0b1a.html

  • 相关阅读:
    div+css 兼容 ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法
    cocos2dx Error:不允许使用继承成员
    NSKeyedArchiver和NSKeydUnarchiver
    Undefined symbols for architecture i386: _OBJC_CLASS_$_SKPSMTPMessage", referenced from: error
    WBShareKit
    PHP(二)
    cocos2d从Url获得图片数据创建CCSprite
    iPhone获取设备的相关信息
    python发人人状态
    [WARN]Warning: Multiple build commands for output file /
  • 原文地址:https://www.cnblogs.com/Nbox1989/p/4316533.html
Copyright © 2011-2022 走看看