• 基础复习——图像视图ImageView——图像按钮ImageButton——同时展示文本与图像...


    图像视图展示的图片通常位于res/drawable***目录,设置图像视图的显示图片有两种方式:

    (1)在XML文件中,通过属性android:src设置图片资源,属性值格式形如“@drawable/不含扩展名的图片名称”。

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

    添加了src属性的ImageView标签示例如下:

    给图像视图设置图片资源的代码例子如下所示:

    // 从布局文件中获取名叫iv_scale的图像视图

    ImageView iv_scale = findViewById(R.id.iv_scale); iv_scale.setImageResource(R.drawable.apple);              // 设置图像视图的图片资源

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

    布局:

    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="match_parent"
    3. android:layout_height="match_parent"
    4. android:orientation="vertical">
    5. <ImageView
    6. android:id="@+id/iv_scale"
    7. android:layout_width="match_parent"
    8. android:layout_height="220dp"
    9. android:layout_marginTop="5dp"
    10. android:src="@drawable/apple" />
    11. <LinearLayout
    12. android:layout_width="match_parent"
    13. android:layout_height="wrap_content"
    14. android:orientation="horizontal">
    15. <Button
    16. android:id="@+id/btn_fitCenter"
    17. android:layout_width="0dp"
    18. android:layout_height="wrap_content"
    19. android:layout_weight="1"
    20. android:text="fitCenter"
    21. android:textColor="#000000"
    22. android:textSize="14sp" />
    23. <Button
    24. android:id="@+id/btn_centerCrop"
    25. android:layout_width="0dp"
    26. android:layout_height="wrap_content"
    27. android:layout_weight="1"
    28. android:text="centerCrop"
    29. android:textColor="#000000"
    30. android:textSize="14sp" />
    31. <Button
    32. android:id="@+id/btn_centerInside"
    33. android:layout_width="0dp"
    34. android:layout_height="wrap_content"
    35. android:layout_weight="1"
    36. android:text="centerInside"
    37. android:textColor="#000000"
    38. android:textSize="14sp" />
    39. LinearLayout>
    40. <LinearLayout
    41. android:layout_width="match_parent"
    42. android:layout_height="wrap_content"
    43. android:layout_marginTop="10dp"
    44. android:orientation="horizontal">
    45. <Button
    46. android:id="@+id/btn_center"
    47. android:layout_width="0dp"
    48. android:layout_height="wrap_content"
    49. android:layout_weight="1"
    50. android:text="center"
    51. android:textColor="#000000"
    52. android:textSize="14sp" />
    53. <Button
    54. android:id="@+id/btn_fitXY"
    55. android:layout_width="0dp"
    56. android:layout_height="wrap_content"
    57. android:layout_weight="1"
    58. android:text="fitXY"
    59. android:textColor="#000000"
    60. android:textSize="14sp" />
    61. <Button
    62. android:id="@+id/btn_fitStart"
    63. android:layout_width="0dp"
    64. android:layout_height="wrap_content"
    65. android:layout_weight="1"
    66. android:text="fitStart"
    67. android:textColor="#000000"
    68. android:textSize="14sp" />
    69. <Button
    70. android:id="@+id/btn_fitEnd"
    71. android:layout_width="0dp"
    72. android:layout_height="wrap_content"
    73. android:layout_weight="1"
    74. android:text="fitEnd"
    75. android:textColor="#000000"
    76. android:textSize="14sp" />
    77. LinearLayout>
    78. LinearLayout>

     

    代码:

    1. package com.example.myapplication;
    2. import androidx.appcompat.app.AppCompatActivity;
    3. import android.os.Bundle;
    4. import android.view.View;
    5. import android.widget.ImageView;
    6. public class NextActivity extends AppCompatActivity implements View.OnClickListener
    7. {
    8. private ImageView iv_scale; // 声明一个图像视图的对象
    9. @Override
    10. protected void onCreate(Bundle savedInstanceState)
    11. {
    12. super.onCreate(savedInstanceState);
    13. setContentView(R.layout.activity_next);
    14. // 从布局文件中获取名叫iv_scale的图像视图
    15. iv_scale = findViewById(R.id.iv_scale);
    16. // 下面通过七个按钮,分别演示不同缩放类型的图片缩放效果
    17. findViewById(R.id.btn_center).setOnClickListener(this);
    18. findViewById(R.id.btn_fitCenter).setOnClickListener(this);
    19. findViewById(R.id.btn_centerCrop).setOnClickListener(this);
    20. findViewById(R.id.btn_centerInside).setOnClickListener(this);
    21. findViewById(R.id.btn_fitXY).setOnClickListener(this);
    22. findViewById(R.id.btn_fitStart).setOnClickListener(this);
    23. findViewById(R.id.btn_fitEnd).setOnClickListener(this);
    24. }
    25. @Override
    26. public void onClick(View v) // 点击事件的处理方法
    27. {
    28. iv_scale.setImageResource(R.drawable.apple); // 设置图像视图的图片资源
    29. if (v.getId() == R.id.btn_center)
    30. {
    31. // 将缩放类型设置为“按照原尺寸居中显示”
    32. iv_scale.setScaleType(ImageView.ScaleType.CENTER);
    33. }
    34. else if (v.getId() == R.id.btn_fitCenter)
    35. {
    36. // 将缩放类型设置为“保持宽高比例,缩放图片使其位于视图中间”
    37. iv_scale.setScaleType(ImageView.ScaleType.FIT_CENTER);
    38. }
    39. else if (v.getId() == R.id.btn_centerCrop)
    40. {
    41. // 将缩放类型设置为“缩放图片使其充满视图,并位于视图中间”
    42. iv_scale.setScaleType(ImageView.ScaleType.CENTER_CROP);
    43. }
    44. else if (v.getId() == R.id.btn_centerInside)
    45. {
    46. // 将缩放类型设置为“保持宽高比例,缩小图片使之位于视图中间(只缩小不放大)”
    47. iv_scale.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
    48. }
    49. else if (v.getId() == R.id.btn_fitXY)
    50. {
    51. // 将缩放类型设置为“缩放图片使其正好填满视图(图片可能被缩放变形)”
    52. iv_scale.setScaleType(ImageView.ScaleType.FIT_XY);
    53. }
    54. else if (v.getId() == R.id.btn_fitStart)
    55. {
    56. // 将缩放类型设置为“保持宽高比例,缩放图片使其位于视图上方或左侧”
    57. iv_scale.setScaleType(ImageView.ScaleType.FIT_START);
    58. }
    59. else if (v.getId() == R.id.btn_fitEnd)
    60. {
    61. // 将缩放类型设置为“保持宽高比例,缩放图片使其位于视图下方或右侧”
    62. iv_scale.setScaleType(ImageView.ScaleType.FIT_END);
    63. }
    64. }
    65. }

     

    =================================================================================

    ImageButton是显示图片的图像按钮,但它继承自ImageView,而非继承Button。

    ImageButton和Button之间的区别有:

    (1)Button既可显示文本也可显示图片,ImageButton只能显示图片不能显示文本。

    (2)ImageButton上的图像可按比例缩放,而Button通过背景设置的图像会拉伸变形。

    (3)Button只能靠背景显示一张图片,而ImageButton可分别在前景和背景显示图片,从而实现两张图片叠加的效果。

    布局:

    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="match_parent"
    3. android:layout_height="match_parent"
    4. android:orientation="vertical">
    5. <ImageButton
    6. android:layout_width="match_parent"
    7. android:layout_height="80dp"
    8. android:src="@drawable/sqrt"
    9. android:scaleType="fitCenter" />
    10. LinearLayout>

    在某些场合,有的字符无法由输入法打出来,或者某些文字以特殊字体展示,就适合适合先切图再放到ImageButton。

    例如:开平方符号 

    ,等等。

    ImageButton与ImageView之间的区别有:

    (1)ImageButton有默认的按钮背景,ImageView默认无背景。

    (2)ImageButton默认的缩放类型为center,而ImageView默认的缩放类型为fitCenter。

    ====================================================================================================

    同时展示文本与图像的可能途径包括:

    (1)利用LinearLayout对ImageView和TextView组合布局。

    (2)通过按钮控件Button的drawable***属性设置文本周围的图标。

    drawableTop:指定文字上方的图片。

    drawableBottom:指定文字下方的图片。

    drawableLeft:指定文字左边的图片。

    drawableRight:指定文字右边的图片。

    drawablePadding:指定图片与文字的间距。

    布局:

    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="match_parent"
    3. android:layout_height="match_parent"
    4. android:orientation="vertical">
    5. <Button
    6. android:layout_width="wrap_content"
    7. android:layout_height="wrap_content"
    8. android:layout_marginTop="20dp"
    9. android:layout_gravity="center"
    10. android:drawableLeft="@drawable/ic_about"
    11. android:drawablePadding="5dp"
    12. android:text="图标在左"
    13. android:textColor="#000000"
    14. android:textSize="17sp" />
    15. <Button
    16. android:layout_width="wrap_content"
    17. android:layout_height="wrap_content"
    18. android:layout_marginTop="20dp"
    19. android:layout_gravity="center"
    20. android:drawableRight="@drawable/ic_about"
    21. android:drawablePadding="15dp"
    22. android:text="图标在右"
    23. android:textColor="#000000"
    24. android:textSize="17sp" />
    25. <Button
    26. android:layout_width="wrap_content"
    27. android:layout_height="wrap_content"
    28. android:layout_marginTop="10dp"
    29. android:layout_gravity="center"
    30. android:drawableTop="@drawable/ic_about"
    31. android:drawablePadding="5dp"
    32. android:text="图标在上"
    33. android:textColor="#000000"
    34. android:textSize="17sp" />
    35. <Button
    36. android:layout_width="wrap_content"
    37. android:layout_height="wrap_content"
    38. android:layout_marginTop="10dp"
    39. android:layout_gravity="center"
    40. android:drawableBottom="@drawable/ic_about"
    41. android:drawablePadding="5dp"
    42. android:text="图标在下"
    43. android:textColor="#000000"
    44. android:textSize="17sp" />
    45. LinearLayout>

     

  • 相关阅读:
    写一个简易的spring包含ioc和aop功能
    (十四)线程(基础)
    SAP ABAP OBJECTS_NOT_CHARLIKE
    大数据在智慧农业中的应用
    深入理解final关键字
    智慧工业+数字孪生,打造智慧设备运维最优解
    39.地址算术运算
    网络编程实战(一)
    flutter开发实战 - inappwebview设置cookie
    Node.js中的child_process模块的作用
  • 原文地址:https://blog.csdn.net/m0_61442607/article/details/126076855