是否可以在Java中动态地在Android中添加位图作为ImageView的边界?
我已经尝试了以下内容:
图像视图在XML和边框中作为形状,结果是错误的我想在边框中添加位图。
答案 0 :(得分:1)
我最近找到的最简单的解决方案。
尝试在应用中使用素材主题。使用"Theme.MaterialComponents.Light"
然后在内部使用图像视图和物料卡视图。
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="8dp"
app:cardElevation="0dp"
app:strokeColor="@color/colorPrimary"
app:strokeWidth="1dp">
<ImageView/>//define you image view hear
</com.google.android.material.card.MaterialCardView>
使用属性stokeColor
和strokeWidth
,您可以在图像视图上具有边框并使之动态。
答案 1 :(得分:0)
您有多种选择:
在Imageview上方放置一个带边框(也是imageview)的其他视图。 Thay可能是简单的解决方案。只需在xml中添加其他视图,并确保它们重叠。 (例如使用Relative或FrameLayout作为容器)
使用Layer List并在位图上方绘制形状并将其添加到ImageView
编写自定义ImageView并使用Canvas在覆盖的onDraw方法中绘制Border。例如。 canvas.drawRect(...)非常简单。
答案 2 :(得分:0)
简单方法:
用于 ImageView 的android:foreground
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1px" android:color="#ff0000" />
<solid android:color="@android:color/transparent"/>
</shape>
然后 XML ,
<ImageView
android:id="@+id/unreserved_head_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="@drawable/shape_border"
/>
答案 3 :(得分:0)
您可以在andorid studio中使用9个补丁使图像成为边框!
我正在寻找解决方案,但没有找到任何解决方案,所以我跳过了这一部分
然后我转到firebase资产的google图片,偶然发现它们使用了9patch
此处是链接:https://developer.android.com/studio/write/draw9patch 您只需要将边缘拖动到
就像团结一致的博德边缘