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);  
  • 相关阅读:
    http url转义字符,特殊字符
    No bean named &#39;cxf&#39; is defined
    c语言中结构体指针
    Android fragment (二)
    文件I/O之C标准库函数和系统库函数差别
    计算机组成原理——主存与cache的映射关系
    openstack 用nova API 指定 compute node 创建 instance
    SQL存在一个表而不在还有一个表中的数据
    hdu 2602
    小金登陆游戏
  • 原文地址:https://www.cnblogs.com/wanqieddy/p/4960244.html
Copyright © 2011-2022 走看看