Android的image

博观而约取,厚积而薄发。这篇文章主要讲述Android的image相关的知识,希望能为你提供帮助。
ImageView继承View,主要用于显示图片,实际上除了用来显示图片,任何Drawable对象都可以使用ImageView来显示。

Drawable参考https://www.runoob.com/w3cnote/android-tutorial-drawable1.html

1. ImageView有三个可以设置图片的属性,分别是:src, foreground, background
在xml中设置
android:foreground=" @drawable/xxx" // 或者 " #0000ff" android:src=https://www.songbingjia.com/android/" @drawable/xxx" // 或者 " #0000ff" android:background=" @drawable/xxx" // 或者 " #0000ff"

① background: 指的是背景;foreground指的是前景;src指的是内容;三者可以同时使用;
注意:三者同时使用时,foreground在最上面显示,src在中间,background在最下面,所以同时设置时显示的是foreground设置的内容

② src填入图片时,是按照图片大小直接填充,并不会进行拉伸;而使用background和foreground填入图片,则是会根据ImageView给定的宽度来进行拉伸;
③ background和foreground是所有view都有的属性,总是缩放到view的大小,不受scaleType影响;而src是ImageView特有属性,它会受到scaleType的影响。
2.设置前景:可以在View.java中查看源码
// 设置前景图/颜色 image.setForeground(Drawable drawable);

3.设置src:可以在ImageView.java中查看源码
1. setImageDrawable(Drawable drawable) //对应src属性,首先是根据该属性值获取Drawable,再调用该函数 /* setImageDrawable是最省内存高效的 */2. setImageBitmap(Bitmap bm) /* 该函数把Bitmap对象封装成Drawable对象,然后调用setImageDrawable设置图片。如果需要频繁调用这个方法,最好自己封装个固定的Drawable对象,直接调用setImageDrawable,这样可以减少Drawable对象的创建。 */3. setImageResource(int resId) /* setImageResource的参数是resId,必须是drawable目录下的资源,它是在UI线程中对图片读取和解析的,所以可能对Activity的启动造成延迟。官方建议用setImageDrawable和setImageBitmap来代替。 */

4.设置背景:可以在View.java中查看源码
1.setBackground(Drawable background) // 对应background属性,首先是根据resid获取Drawable,再调用该函数 2.setBackgroundResource(int resid) // 传入0时表示清除背景图片 3.setBackgroundDrawable(Drawable background) 4.setBackgroundColor(int color)

5.获取Drawable对象:
1.如果是通过src属性设置的图片(或src相关的java接口,参考3),获取Drawable对象的方法为
Drawable drawable = image.getDrawable(); // image为ImageView对象 // 如果是.9图片,获取的是NiewPatchDrawable // 不是.9图片,获取的是BitmapDrawable,根据它可以获得Bitmap图片 Bitmap b = ((BitmapDrawable) drawable).getBitmap();

【Android的image】2.如果是通过background设置的图片,获取Drawable对象的方法为
Drawable drawable = image.getBackground(); // 获取的是ColorDrawable

参考:
https://www.runoob.com/w3cnote/android-tutorial-imageview.html


    推荐阅读