zoukankan      html  css  js  c++  java
  • 如何使用代码动态的获取和设置ImageView的宽度和高度?

    http://blog.csdn.net/wulianghuan/article/details/8644144

    国内某金融企业的一道面试题:如何在代码中获得一个ImageVIew的高度和宽度?

    相信很大一部分人,会直接想到用imageview.getWidth() 和 imageview.getHeight() 来获得,其实不然。

    我们可以自己写个程序来跑一下,当我们放置一张图片在imageView中,并且设置了它的高度和宽度,我们不妨在日志控制台输出看一下,

    Log.i("MainActivity", "宽度:"+String.valueOf(imageView.getWidth()));
    Log.i("MainActivity", "高度:"+String.valueOf(imageView.getHeight()));

    输出结果如下:

     

    是不是很恼火呀,结果就是这样。

    那么究竟该如何获取图片的高度和宽度呢? 其实,我们可以通过构建一个BItMap对象出来,这个BItMap就是从我们的那种图片资源转换而来,bitmap对象中的getWidth() 和getHeight()可以获得位图的大小,代码例子如下:

    1. <span style="white-space:pre">  </span>ImageView imageView = (ImageView)findViewById(R.id.imageView);  
    2.     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.newscar);  
    3.     Log.i("MainActivity", "宽度:"+String.valueOf(bitmap.getWidth()));  
    4.     Log.i("MainActivity", "高度:"+String.valueOf(bitmap.getHeight()));  


    这个时候我们再来看一下日志控制台的输出结果:

    Ok,第一个问题我们搞定了(注意:这是原图片的大小,不是我们布局文件中设置的大小)。

    接下来我们看一下如何动态设置图片的高度和宽度,这问题比较简单,我们直接使用LayoutParams的对象来进行设置 

    代码如下:

      1. <span style="white-space:pre">  </span>ImageView imageView = (ImageView)findViewById(R.id.imageView);  
      2.     imageView.setImageResource(R.drawable.newscar);  
      3.     LayoutParams params = imageView.getLayoutParams();  
      4.     params.height=200;  
      5.     params.width =100;  
      6.     imageView.setLayoutParams(params);  
  • 相关阅读:
    如何解决UITextField挡住键盘的问题
    设置UITextField中能输入的最大的字数
    如何判断IOS的设备版本型号
    IOS中如何实现对话聊天
    精美的iOS图片欣赏
    关于IOS 应用图标的设置
    ios7中添加多个按钮
    elementary0.4:快速配置工具
    elementary:网易云音乐白条解决
    deepin下eclipse快捷方式
  • 原文地址:https://www.cnblogs.com/wanqieddy/p/4960244.html
Copyright © 2011-2022 走看看