将图像放入Android中的另一个图像中

时间:2014-09-17 09:20:48

标签: android imageview android-linearlayout relativelayout nine-patch

我正在尝试在android中实现以下屏幕截图。

enter image description here

要获得圆形图像,我可以从这里获得圆形图像库:

https://github.com/vinc3m1/RoundedImageView

所以我尝试了以下代码:

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

<com.ylg.RoundImageView
        android:id="@+id/profilePhoto"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:gravity="center_horizontal"
        android:src="@drawable/profilepic" />

但我最终收到错误:

 NOTE: This project contains Java compilation errors, which can cause rendering failures for  custom views. Fix compilation problems first.

 Exception raised during rendering: Index: 0, Size: 0

我的标记图像需要9个补丁:我在下面做了哪些补丁:

enter image description here

这里可能有什么问题。如何在布局xml中实现abouve截图?

3 个答案:

答案 0 :(得分:3)

你不能像这样使用FrameLayout吗?

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.testproject.MainActivity" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/bg" >
    </ImageView>

    <ImageView
        android:id="@+id/overlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher"/>

</FrameLayout>

我使用了边框图像@drawable/bg,我得到了这个输出:

enter image description here

在您的情况下,用户的图像将小于边框图像,因此应该适合。

希望这有帮助。

答案 1 :(得分:2)

只需使用保证金来完全符合它:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    >

    <RelativeLayout
        android:layout_width="130dip"
        android:layout_height="130dip"
        android:background="@drawable/bg" >

        <com.example.mmlooloo.RoundedImageView
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/imageView1"
            android:layout_width="90dip"
            android:layout_height="90dip"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="15dip"
            android:layout_marginTop="10dip"
            android:scaleType="centerCrop"
            android:src="@drawable/profile"
            app:border_color="#0000FF"
            app:border_width="2dip"
            app:corner_radius="80dip" 
            app:oval="true" />
    </RelativeLayout>

</LinearLayout>

<resources>

    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>

</resources>

结果:

enter image description here

答案 2 :(得分:0)

尝试将ImageView的背景设置为包含背景图像的drawable(xml)资源,并将ImageView src设置为所需的图片。这应该可以解决你的问题。

修改

试试此代码

    <ImageView
        android:id="@+id/img_chatUserImg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:background="@drawable/bb"
        android:paddingBottom="40.0dip"
        android:paddingTop="10.0dip"
        android:paddingRight="10.0dip"
        android:paddingLeft="10.0dip"
        android:src="@drawable/ic_smiley"/>

其中'bb'是backgournd白色图像,src包含显示在其上的实际图像。

enter image description here

我相应地调整了我的填充。如果图像大小不同,则将imageview包装在另一个LinearLayout中,并将背景和填充设置为它并将图像视图放在其中并修复大小,使其始终保持在白色边框内< / p>