• 如何使用代码动态的获取和设置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);  
  • 相关阅读:
    大数据之路Week10_day01 (练习:通过设计rowkey来实现查询需求)
    大数据之路Week10_day01 (通过直接创建Hfile文件的方式往Hbase中插入数据)
    大数据之路Week10_day01 (Hbase总结 II)
    Week09_day05(Java API操作Hbase)
    Week09_day05(Hbase的基本使用)
    Zookeeper、Hadoop、Hbase的启动顺序以及关闭顺序
    Week09_day05(Hbase的安装搭建)
    HDU 1198
    hdu 1250 Hat's Fibonacci(java,简单,大数)
    HDU 1316 How Many Fibs?(java,简单题,大数)
  • 原文地址:https://www.cnblogs.com/wanqieddy/p/4960244.html
Copyright © 2020-2023  润新知