Android - 为图像视图添加自定义边框

时间:2014-06-28 11:59:36

标签: android android-imageview

我需要在我的应用中拥有一个图像视图,其边框类似于以下内容:

enter image description here

我只有边框图像和图像视图,并且不知何故需要将图像视图放在边框内(边框图像是透明的 - 就像从here下载此问题中使用的那个)。

有关如何实现这一目标的任何建议吗?

2 个答案:

答案 0 :(得分:1)

您可以做很多解决方案。

  • 使用绘画和着色器扩展ImageView类并覆盖OnDraw(Canvas)并在ImageView的Canvas上绘制图像,并提供绘制矩形的大小,然后绘制框架。

  • 将ImageView的背景设置为Frame,将Ur Image设置为Src,给出一个填充,使Src图像适合透明区域。

答案 1 :(得分:1)

试试这个,将它保存为“frame.9.png”作为9patch,将其删除到drawables文件夹:

enter image description here

例如,帧中的图片应该更大,例如:

enter image description here

布局示例:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/frame">

    <ImageView
        android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/cat"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        />
</LinearLayout>

结果:

enter image description here

请记住,9-patch不能缩小它们可以伸展。信息在这里:https://stackoverflow.com/a/14274623/619673

Cat图片是从http://www.socwall.com/wallpapers/search:cat/

下载的