Android 中 Imageview 的圆角

2024-03-14

我在线性布局中有一个文本视图和图像视图。 Textview 位于顶部,imageview 位于底部。我使用下面的线条来实现线性布局的圆角。但 imageview 的角不是圆角的。我看到只有线性布局的顶角是圆角的。如何使 imageview 的底角圆角?(如果我删除图像视图,我会看到所有的角都是圆角的)

圆角.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<solid android:color="#ffffff" />


<corners
    android:bottomLeftRadius="8dp"
    android:bottomRightRadius="8dp"
    android:topLeftRadius="8dp"
    android:topRightRadius="8dp" />

</shape>

main.xml

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="50dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="50dp"
    android:background="@xml/rounded_corners"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="xxxxxxxx" />

    <ImageView     
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:src="@drawable/my_image_view" />
</LinearLayout>

screen shot : enter image description here


你可以将图像的左下角和右下角变成圆角,如下所示:

code:

public static Bitmap getRoundCornerBitmap(Bitmap bitmap, int radius) {
    int w = bitmap.getWidth();
    int h = bitmap.getHeight();
    Bitmap output = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(output);

    final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    final RectF rectF = new RectF(0, 0, w, h);

    canvas.drawRoundRect(rectF, radius, radius, paint);

    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    canvas.drawBitmap(bitmap, null, rectF, paint);

    /**
     * here to define your corners, this is for left bottom and right bottom corners
     */
    final Rect clipRect = new Rect(0, 0, w, h - radius);
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
    canvas.drawRect(clipRect, paint);

    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    canvas.drawBitmap(bitmap, null, rectF, paint);

    bitmap.recycle();

    return output;
}

此方法可以为您提供左下角和右下角圆角的图像。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中 Imageview 的圆角 的相关文章

随机推荐

  • Javascript,正则表达式 - 我需要获取括号中包含的字符串的每个部分

    这是我需要的 我想顺序一定是正确的 需要提取并存储方括号中包含的字符串的每个部分的内容 每个部分都必须跟在原始字符串的其余部分之后 并且返回没有它们的原始字符串 如果在给定提取部分的开头有一个可识别的字符串 后跟一个冒号 那么我需要识别并删
  • React检测iframe的src的变化

    我有一个iframe我的组件中的元素 我需要以某种方式检测该 iframe 的 URL 何时发生变化 到目前为止我已经尝试过 Added onLoad回调 但这不会在我每次在 iframe 中重定向时触发 Used React useCal
  • 如何使用 Twilio 解决 java.lang.NoClassDefFoundError UserAgentConfig$Callbacks

    我正在使用 Twilio Client Android sdk 但在尝试运行它时失败并出现此错误 Caused by java lang NoClassDefFoundError Class Lcom twilio client impl
  • 如何在 PHP 的自定义函数中添加可选参数?

    例如 这是一个总结它的快速虚拟函数 function dummy func optional if isset optional optional World output Hello optional return output 但是 如
  • 处理 Android 5.0 Lollipop 中的媒体按钮

    在 API 21 之前 我使用的是这样的调用audioManager registerMediaButtonEventReceiver receiver 当用户按下耳机上的按钮时处理媒体按钮事件 从 API 21 开始 似乎MediaSes
  • 确定对象是否是数组的最佳方法是什么

    据我所知 有三种方法可以判断一个对象是否是数组 by isArray功能 如果已实现 Array isArray by toString Object prototype toString apply obj object Array an
  • C# - 将变量传递给 Matlab

    典型的谷歌搜索结果是空的 我呼吁你们的伟大思想 如何将变量从我正在编写的 C 类传递到 Matlab 我通过 NET addAssembly 函数与其交互 我应该在 C 代码中引用 dll 文件吗 如果是的话 它在哪里 是否有一些文档和示例
  • 访问 getSymbols 返回的奇数名称对象

    我正在使用雅虎下载数据quantmod gt getSymbols HNZ A TO 1 HNZ A TO Warning message In download file paste yahoo URL s Symbols name a
  • max_length、填充和截断参数在 HuggingFace 的 BertTokenizerFast.from_pretrained('bert-base-uncased') 中如何工作?

    我正在处理文本分类问题 我想使用 BERT 模型作为基础 然后使用密集层 我想知道这 3 个参数是如何工作的 例如 如果我有 3 个句子 My name is slim shade and I am an aspiring AI Engin
  • 如何将列表列表转换为数据框 - 不相同列表

    我有一个列表 其中每个元素都是命名列表 但元素在各处并不相同 我已阅读有关如何将列表列表转换为数据帧的解决方案here https stackoverflow com questions 4512465 what is the most e
  • 鼠标悬停时更改画布中的颜色线

    我在画布上有一些线条 我希望当鼠标悬停在该行上时 每行都会改变颜色 但我对此问题有一些问题 有没有JS库可以帮我解决这个问题 你能帮助我吗 谢谢 var canvas document getElementById myCanvas var
  • 使用 AsyncTask 填充 ListView

    这可能不是很优雅 但我想做的是连接到 Web 服务 获取 JSON 解析它 从中创建一个对象 将该对象添加到 ArrayList 然后使用该 ArrayList 来填充我的列表显示 我正在尝试使用 AsyncTask 来完成所有这一切 摘要
  • CSS3显示:表格,溢出-y:滚动不起作用

    我有一个需要垂直滚动的数据表 看来如果你的display值为table 您不能设置height or 最大高度 所以溢出 y 滚动什么也没做 带表格的 Codepen http codepen io anon pen MYZJdE fake
  • 使用pivot_longer整理数据集:将多列分成两列

    我大家 我目前正在学习 R 并尝试使用 tidyverse 包中的pivot longer 整理数据集 我有这个小事 title actor 1 actor 2 actor 3 actor 1 FB likes actor 2 FB lik
  • Eclipse 中的 XML 验证和自动完成

    在android SDK中 当我编辑android布局xml文件时 它可以进行验证和自动完成 这是如何运作的 如何使用我自己定义的 xml 格式使 eclipse 验证并自动完成 Eclipse 可用于编辑和验证 XML 文件 我在 Ecl
  • 如何延迟谷歌自动完成功能以节省信用

    正如你所知 每次我们输入谷歌地图自动完成功能都会触发 我想为此设置一个延迟函数 例如250毫秒 这样可以给用户更多的时间来输入并节省积分 我尝试添加 timeout 但看起来它对我不起作用 请您帮我看看这个好吗 提前致谢 网页
  • 可以跨域获取iframe的url吗?

    如果是跨域 iframe 如何在页面加载时获取 iframe 的当前 url 背景 我正在尝试在我的网站上启用 SSL 但是 我的用户需要能够通过 iframe 加载任何 url 如果他们尝试使用 http 协议加载 iframe 它将拒绝
  • 项目中不存在目标“/t:native_metrics”

    我想在我的项目上安装 newrelic 但我从控制台收到 node modules newrelic native metrics build bind ing sln metaproj error MSB4057 The target t
  • java网格包布局:避免中心对齐

    在我的 GUI 应用程序中 我有几个 JPanel 它们在程序运行期间的不同点被实例化 并且某些操作将导致其中之一显示在滚动窗格中 mViewport setViewportView currentPanel 问题是 我的面板是使用网格包布
  • Android 中 Imageview 的圆角

    我在线性布局中有一个文本视图和图像视图 Textview 位于顶部 imageview 位于底部 我使用下面的线条来实现线性布局的圆角 但 imageview 的角不是圆角的 我看到只有线性布局的顶角是圆角的 如何使 imageview 的