Android简单--5.图像显示

系列文章目录



前言


1、图像视图 lmageView

图像视图展示的图片通常位于res/drawable***目录,设置图像视图的显示图片有两种方式:
⭕️在XML文件中,通过属性android:src设置图片资源,属性值格式形如“@drawable/不含扩展名的图片名称”。
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ImageScaleActivity">

    <ImageView
        android:id="@+id/iv_scale"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_marginTop="5dp"
        android:src="@drawable/ic_launcher_background"/>

</LinearLayout>

⭕️在Java代码中,调用setlmageResource方法设置图片资源,方法参数格式形如“R.drawable.不含扩展名的图片名称”。

public class ImageScaleActivity extends AppCompatActivity {
    
    

   @Override
   protected void onCreate(Bundle savedInstanceState) {
    
    
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_image_scale);
       ImageView iv_scale = findViewById(R.id.iv_scale);
       iv_scale.setImageResource(R.drawable.ic_launcher_background);
       iv_scale.setScaleType(ImageView.ScaleType.FIT_CENTER);
   }
}

1.1 图像视图的缩放类型

lmageView本身默认图片居中显示,若要改变图片的显示方式,可通过scaleType属性设定,该属性的取值说明如下:

在这里插入图片描述

<Imageview
android:id=""@+id/iv_scale"
android:hayout_width="match_parent""android: layout_height=""220dp"
android:src="edr awab1e/apple"android:scaleType="fitcenter" />Java代码中可调用setScaleType方法设置图像视图的缩放类型,其中fitCenter对应的类型为ScaleType.FIT_CENTER,设置代码示例如下:
/将缩放类型设置为“保持宽高比例,编放图片使其位于视图中问”iv_scale.setscaleType(Imageview.scaleType.FIT_CENTER);

观察效果图发现苹果图片居中显示,而非文本视图里的文字那样默认靠左显示,这是怎么回事?

原来lImageVview本身默认图片居中显示,不管图片有多大抑或有多小,图像视图都会自动缩放图片,使之刚好够着lmageVview的边界,并且缩放后的图片保持原始的宽高比例,看起来图片很完美地占据视图中央。这种缩放类型在XML文件中通过属性android:scaleType定义,即使图像视图末明确指定该属性,系统也会默认其值为fitCenter,表示让图像缩放后居中显示。添加了缩放属性的ImageView标签如下所示:

在这里插入图片描述

注意到centerinside和center的显示效果居然一模一样,这缘于它们的缩放规则设定。表面上fitCenter、centerInside、center三个类型都是居中显示,且均不越过图像视图的边界。它们之间的区别在于:
1️⃣ fitCenter既允许缩小图片、也允许放大图片, centerinside只允许缩小图片、不允许放大图标,而center自始至终保持原始尺寸(既不允许缩小图片、也不允许放大图片)。
2️⃣因此,当图片尺寸大于视图宽高,centerinside与fitCenter都会缩小图片,此时它俩的显示效果相同;
3️⃣当图片尺寸小于视图宽高,centerlnside与center都保持图片大小不变,此时它俩的显示效果相同。

2. 图像按钮lmageButton

lmageButton是显示图片的图像按钮,但它继承自lmageView,而非继承Button。lmageButton和Button之间的区别有:
1️⃣Button既可显示文本也可显示图片,lmageButton只能显示图片不能显示文本。
2️⃣lmageButton上的图像可按比例缩放,而Button通过背景设置的图像会拉伸变形。
3️⃣Button只能靠背景显示一张图片,而ImageButton可分别在前景和背景显示图片,从而实现两张图片叠加的效果。

2.1 ImageButton的使用场合

在某些场合,有的字符无法由输入法打出来,或者某些文字以特殊字体展示,就适合适合先切图再放到ImageButton。例如:开平方符号,等等。
lmageButton与ImageView之间的区别有:
1️⃣lmageButton有默认的按钮背景,lmageView默认无背景。
2️⃣lmageButton默认的缩放类型为center,而lmageView默认的缩放类型为fitCenter。

3. 同时展示文本与图像

同时展示文本与图像的可能途径包括:
1️⃣利用LinearLayout对ImageView和TextView组合布局。
2️⃣通过按钮控件Button的drawable属性设置文本周围的图标。
❌drawableTop:指定文字上方的图片。
⭕️drawableBottom:指定文字下方的图片。
❌drawableLeft:指定文字左边的图片
⭕️drawableRight:指定文字右边的图片。
❌drawablePadding:指定图片与文字的间距。


总结

本文介绍了,ImageView,ImageButton之间的区别,ImageView是Android开发当中运用到最多的控件之一。

猜你喜欢

转载自blog.csdn.net/m0_53142039/article/details/126974640
今日推荐