11-

12-

13-android获取图片原始长宽;

=========

11--国内某金融企业的一道面试题:如何在代码中获得一个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. 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,第一个问题我们搞定了(注意:这是原图片的大小,不是我们布局文件中设置的大小)。

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

代码如下:

    1. 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);

13--android获取图片原始长宽

在android里面要要取一张96 x 96像素每个像素点的RGB值然后处理,但是一开始直接读取

  1. Bitmap mBitmap =BitmapFactory.decodeResource(getResources(), R.drawable.jimg001);
  2. int width=opts.outWidth;
  3. int height=opts.outHeight;

这样读出来的值却实变成了144 x 144像素,很无语,对Android接触不多,查看各种资料才发现如果这样写android默认读取的不是原始大小

  1. BitmapFactory.Options opts = new BitmapFactory.Options();
  2. opts.inJustDecodeBounds = true;
  3. BitmapFactory.decodeResource(getResources(), R.drawable.jimg001, opts);
  4. opts.inSampleSize = 1;
  5. opts.inJustDecodeBounds = false;
  6. Bitmap mBitmap =BitmapFactory.decodeResource(getResources(), R.drawable.jimg001, opts);
  7. int width=opts.outWidth;
  8. int height=opts.outHeight;

将BitmapFactory.Options.inSampleSize设为1才是原始大小,有时候根据需要因为图片太大而内存溢出时,需要适当选择inSampleSize的值,可以参考http://hi.baidu.com/liganggang/item/6ab1e480fa2da1e3e596e015

imageView--转-如何代码动态的获取和设置ImageView的宽度和高度?的更多相关文章

  1. 如何使用代码动态的获取和设置ImageView的宽度和高度?

    http://blog.csdn.net/wulianghuan/article/details/8644144 国内某金融企业的一道面试题:如何在代码中获得一个ImageVIew的高度和宽度? 相信 ...

  2. jQuery获取或设置元素的宽度和高度

    jQuery获取或设置元素的宽度和高度: 可使用以下3种方法: 1,jQuery width() 和 height() 方法: 2,innerWidth() 和 innerHeight() 方法: 3 ...

  3. JavaScript获取屏幕和页面的宽度和高度

    JavaScript获取屏幕和页面的宽度和高度 1.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...

  4. js 获取浏览器显示内容的宽度和高度

      js获取浏览器显示内容的宽度和高度 CreateTime--2017年7月10日17:24:12Author:Marydon 1.获取浏览器屏幕显示d的网页宽度 /** * 得到浏览器显示的屏幕高 ...

  5. 后台程序获取JPG/GIF/PNG图片宽度、高度

    这是很久之前编写的代码,该代码是读取流数据指定位置的内容,获取图片的宽度.高度值. 由于系统更新,这些代码丢之不用,在这里存个档吧! 1. 获取gif图片宽度.高度.(binary_是图片流数据) ' ...

  6. 获取Winform窗体、工作区 宽度、高度、命名空间、菜单栏高度等收集

    MessageBox.Show("当前窗体标题栏高"+(this.Height - this.ClientRectangle.Height).ToString());//当前窗体标 ...

  7. JavaScript获取html元素的实际宽度和高度

    一.JavaScript获取html元素宽高 1.宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offs ...

  8. Cocos Creator 动态设置Canvas的宽度与高度,更改适配

    let c = this.node.getComponent(cc.Canvas);c.fitHeight = true;c.fitWidth = false; let h = 960 * cc.wi ...

  9. js和jquery如何获取图片真实的宽度和高度

    按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式,下面为大家介绍下js和jquery如何获取图片真实的宽度和高度   1.什么时候需要获取图片真实的宽度和高度 在做pc网页 ...

随机推荐

  1. 初识boost之boost::share_ptr用法

    boost中提供了几种智能指针方法:scoped_ptr shared_ptr intrusive_ptr weak_ptr,而标准库中提供的智能指针为auto_ptr. 这其中,我最喜欢,使用最多的 ...

  2. PHP-mysqllib和mysqlnd

    1.什么是mysqlnd驱动? PHP手册上的描述:MySQL Native Driver is a replacement for the MySQL Client Library (libmysq ...

  3. Myeclipse10中出现Cannot return from outside a function or method错误提示

    最近发现myeclipse10中有几处bug 比如: Cannot return from outside a function or method onClick="return chec ...

  4. Nuget 摘录

    1 , Creating and Publishing a Package     https://docs.nuget.org/create/creating-and-publishing-a-pa ...

  5. linux概念之cpu分析

    http://ilinuxkernel.com/?cat=4 Linux CPU占用率原理与精确度分析1  CPU占用率计算原理在Linux/Unix 下,CPU 利用率分为用户态.系统态和空闲态,分 ...

  6. CI框架3.0关于session的设置改动及存数据库的使用方法

    Session的设置跟之前有点不一样 我们来看看2.0版本中的设置是什么样子的: $config['sess_cookie_name']= 'test_session'; $config['sess_ ...

  7. python3_RoboBrowser_test

    python3_RoboBrowser_test selenium库作为交互是非常方便的,但是却大大加长了加载的时间,例如需要渲染网址,加载js,造成在爬虫过程中时间变长. 因此找到一个虚拟的浏览器, ...

  8. android 实现拍照的2种方法

    android系统的照相功能,已实现2种方法,可供大家参考: 1.调用系统摄像头来拍照 首先,找到AndroidManifest.xml文件里加入用户权限 <uses-permission an ...

  9. 转载:mybatis自动生成

    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://generator.sturgeon.mopaas.com/ 该中文文档由于尽可能和原文内容 ...

  10. HTML5跨浏览器表单及HTML5表单的渐进增强

    HTML5跨浏览器表单 http://net.tutsplus.com/tutorials/html-css-techniques/how-to-build-cross-browser-html5-f ...