Android将边框图像添加到ImageView

时间:2015-12-14 13:42:34

标签: java android imageview

是否可以在Java中动态地在Android中添加位图作为ImageView的边界?

我已经尝试了以下内容:

  

图像视图在XML和边框中作为形状,结果是错误的我想在边框中添加位图。

4 个答案:

答案 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>

使用属性stokeColorstrokeWidth,您可以在图像视图上具有边框并使之动态。

答案 1 :(得分:0)

您有多种选择:

  1. 在Imageview上方放置一个带边框(也是imageview)的其他视图。 Thay可能是简单的解决方案。只需在xml中添加其他视图,并确保它们重叠。 (例如使用Relative或FrameLayout作为容器)

  2. 使用Layer List并在位图上方绘制形状并将其添加到ImageView

  3. 编写自定义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

9patch in action

此处是链接:https://developer.android.com/studio/write/draw9patch 您只需要将边缘拖动到

就像团结一致的博德边缘