【问题标题】:Android add border image to ImageViewAndroid为ImageView添加边框图片
【发布时间】:2016-03-20 00:32:16
【问题描述】:

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

我已经尝试了以下方法:

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

【问题讨论】:

    标签: java android imageview


    【解决方案1】:

    您有多种选择:

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

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

    3. 写一个自定义的ImageView,使用Canvas在覆盖的onDraw方法中绘制Border。例如。 canvas.drawRect(...) 非常简单。

    【讨论】:

    • 感谢您的建议...现在请告诉我是否有可能(我现在有手机的透明图像,我想将其用于该图像适合该透明部分的简单图像)所以它的外观就像那张图片有手机背景一样。 cdn2.iconfinder.com/data/icons/app-types-in-grey/512/…
    • 您还可以查看此应用的徽标 play.google.com/store/apps/details?id=com.knt
    • @KinjalPatel 是的,简单的解决方案可能是让您的手机图像的屏幕透明并将其放置在您想要的背景上。但是有多种方法可以做到这一点。也许您应该尝试最喜欢的一个,如果遇到问题,请提出一个新问题。
    • 你检查过这个应用程序的标志...? play.google.com/store/apps/details?id=com.knt
    【解决方案2】:

    简单的方法:

    ImageViewdrawable 属性 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】:

      我最近找到的最简单的解决方案。 尝试在您的应用程序中使用材料主题。使用"Theme.MaterialComponents.Light"

      然后使用里面的image view和material card view。

              <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,您可以在图像视图上设置边框并使其动态化。

      【讨论】:

        【解决方案4】:

        你可以在andorid studio中使用9个补丁来为图片做边框!

        我正在寻找解决方案,但我没有找到任何解决方案,所以我跳过了那部分

        然后我去谷歌的firebase资产图片,我偶然发现他们使用9patch

        这是链接:https://developer.android.com/studio/write/draw9patch 您只需要拖动边缘所在的位置

        它就像统一的边界边缘

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-24
          • 1970-01-01
          • 2015-01-29
          • 2013-02-02
          • 2012-05-03
          相关资源
          最近更新 更多