如何显示边框Imageview?

朋友如何显示边框Imageview?

我想要结果像移animation廊所有的图像显示与边界。

请给我谢谢提前….

您可以为ImageView的“border”(实际上是背景)创build一个资源(图层drawable xml),并在您的theme中声明ImageView的背景资源是可绘制的xml。

如果您需要根据ImageView的状态( focusedselected等)更改此“边框”,则应该创build更多图层可绘制,并将它们放在select器xml(状态可绘制)中。
然后在你的主题中,你应该把ImageView的背景设置为这个selector.xml

更新
以下是如何指定图像的简单边框的示例,这将导致

与边界交战

你必须

  1. 创build一个新的图层可绘制文件( image_border.xml ),
  2. 修改/创build您的styles.xml文件
  3. 修改/创build你的colors.xml文件
  4. 修改您的布局xml文件(或您的代码)以将样式应用于ImageView

RES /抽拉/ image_border.xml

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <gradient android:angle="90" android:startColor="@color/image_border_start" android:centerColor="@color/image_border_center" android:endColor="@color/image_border_end" /> </shape> </item> <item android:top="2dp" android:left="2dp" android:right="2dp" android:bottom="2dp"> <shape android:shape="rectangle"> <solid android:color="@color/default_back_color" /> </shape> </item> </layer-list> 

RES /值/ styles.xml
添加以下行:

 <style name="myImageView"> <!-- 3dp so the background border to be visible --> <item name="android:padding">3dp</item> <item name="android:background">@drawable/image_border</item> <item name="android:scaleType">fitCenter</item> </style> 

RES /值/ colors.xml
添加以下行:

 <color name="image_border_start">#40990000</color> <color name="image_border_end">#FF660000</color> <color name="image_border_center">#FFFF3333</color> 

最后,在您的布局xml中指定您的ImageView的样式:

 <ImageView android:id="@+id/my_image" android:layout_width="100dp" android:layout_height="100dp" android:src="@drawable/efteling" style="@style/myImageView" /> 

你可以使用这个XML文件作为一个drawable而不是多个文件,但是这个文件被放置在drawable文件夹中。 在ImageView中使用这个XML文件作为背景可绘制,如: android:background="@drawable/following code file name"

我希望这对你有帮助。

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF" /> <stroke android:width="1dp" android:color="#000000" /> <padding android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp" /> </shape> 

我尝试了所有上述解决scheme,但他们不适合我! 所以我想出了一个简单的解决scheme! 🙂

我记得在下面的文章中我读到了有关Android的FrameLayout,它可以帮助我们将我们的UI元素按照我们添加的顺序堆叠在一起。

解:

 <FrameLayout android:layout_width="112dp" android:layout_height="112dp" android:layout_marginLeft="16dp" <!-- May vary according to your needs --> android:layout_marginRight="16dp" <!-- May vary according to your needs --> android:layout_centerVertical="true"> <!-- following imageView acts as the boarder which sitting in the background of our main container ImageView --> <ImageView android:layout_width="112dp" android:layout_height="112dp" android:background="#000"/> <!-- following imageView holds the image as the container to our image --> <!-- layout_margin defines the width of our boarder, here it's 1dp --> <ImageView android:layout_width="110dp" android:layout_height="110dp" android:layout_margin="1dp" android:id="@+id/itemImageThumbnailImgVw" android:src="@drawable/banana" android:background="#FFF"/> </FrameLayout> 

预习:

就是这样。 你会得到像imageView以下!

与寄宿生的ImageView预览

优点和缺点:

我认为这是相当简单的解决scheme,可以在任何其他地方使用,而且您所做的所有事情都集中在一个地方,因此更容易修改。 不过,我不喜欢不得不添加两个ImageViews。