我正在尝试在android中实现以下屏幕截图。
要获得圆形图像,我可以从这里获得圆形图像库:
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个补丁:我在下面做了哪些补丁:
这里可能有什么问题。如何在布局xml中实现abouve截图?
答案 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
,我得到了这个输出:
在您的情况下,用户的图像将小于边框图像,因此应该适合。
希望这有帮助。
答案 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>
结果:
答案 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包含显示在其上的实际图像。
我相应地调整了我的填充。如果图像大小不同,则将imageview包装在另一个LinearLayout中,并将背景和填充设置为它并将图像视图放在其中并修复大小,使其始终保持在白色边框内< / p>