欢迎光临
我们一直在努力

Android 控件 - drawable 与 mipmap、ImageView scaleType 属性、background 属性注意事项、ImageView 设置图片方式

一、drawable 与 mipmap

  • mipmap 用于存放应用图标;drawable 用于存放其他所有图片资源,例如,背景、图标、插图等
  • mipmap 的特殊性:Android 系统会为不同分辨率设备选择最合适的图标

    ic_launcher.png → mipmap-hdpi/
    ic_launcher_round.png → mipmap-hdpi/

    drawable 的标准行为:遵循正常的资源匹配机制,根据密度优先匹配,找不到则向上或向下缩放

    btn_submit.png → drawable-hdpi/
    ic_back.png → drawable-hdpi/

  • ImageView 的 setImageResource 方法完全支持 res/drawable 和 res/mipmap 目录下的图片资源

  • 无论是 drawable 还是 mipmap,系统都会为它们生成相同的 R.drawable.xxx 或 R.mipmap.xxx 资源 ID


  • 二、ImageView scaleType 属性

    缩放类型说明
    fitCenter 等比例缩放图片,直到长边与 ImageView 对齐缩放后,图片会居中显示(这是默认值)
    center 按原图大小居中显示如果图片大于 ImageView,则截取中间部分;如果图片小于 ImageView,则直接居中显示
    centerCrop 等比例缩放图片,直到短边与 ImageView 对齐,长边会被裁剪缩放后,图片会居中显示
    centerInside 等比例缩小图片,直到长边与 ImageView 对齐缩小后,图片会居中显示如果图片小于 ImageView,则直接居中显示
    fitStart 等比例缩放图片,直到长边与 ImageView 对齐缩放后,图片会放在 ImageView 的左上角
    fitEnd 等比例缩放图片,直到长边与 ImageView 对齐缩放后,图片会放在 ImageView 的右下角
    fitXY 不按比例拉伸图片,使其完全填满整个 ImageView
    matrix 不缩放,从 ImageView 的左上角开始绘制,超出 ImageView 范围的部分会被裁剪
    • 最推荐使用的缩放类型是 fitCenter 和 centerCrop

    三、background 属性注意事项

  • background 属性的默认行为是图片会被拉伸以填满整个 View

  • background 属性没有类似 scaleType 这样的属性设置缩放类型


  • 四、ImageView 设置图片方式

    1、setImageResource
  • 从 drawable 资源设置
  • imageView.setImageResource(R.drawable.ic_launcher_background);

  • 从 mipmap 资源设置
  • imageView.setImageResource(R.mipmap.test);

    2、setBackgroundResource

    imageView.setBackgroundResource(R.drawable.ic_launcher_background);

    3、setImageBitmap

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.test);

    imageView.setImageBitmap(bitmap);

    4、setImageDrawable
  • 从资源获取 drawable
  • Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_launcher_background);

    imageView.setImageDrawable(drawable);

    Drawable drawable = VectorDrawableCompat.create(getResources(), R.drawable.ic_launcher_background, null);

    imageView.setImageDrawable(drawable);

  • 创建颜色 drawable
  • Drawable drawable = new ColorDrawable(Color.BLUE);

    imageView.setImageDrawable(drawable);

    5、setImageURI

    File file = new File(getFilesDir(), "test.png");

    Uri uri = Uri.fromFile(file);

    imageView.setImageURI(uri);

    赞(0)
    未经允许不得转载:171主机测评 » Android 控件 - drawable 与 mipmap、ImageView scaleType 属性、background 属性注意事项、ImageView 设置图片方式
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址