如何让背景可绘制小于视图?假设我有一个用户点击拍摄照片的ImageView。我想将ic_photo_camera图标作为ImageView的背景。但我不希望图标伸展到适合ImageView的大小:我希望图标保持自己的大小。如何在不使用视图组合的情况下执行此操作?而只是一个观点?例如,我可以使用A RelativeLayout和两个ImageView来完成此任务。但我想知道是否只有一个ImageView的选项。
更新
我认为这和图片一样好:这就是现在。但我不想使用三种观点,如果可以,我想使用一种观点。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="#eeeeee"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/container"
android:layout_width="250dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="center"
android:src="@drawable/ic_photo_camera_white_48dp" />
<ImageView
android:id="@+id/photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:scaleType="centerCrop" />
</RelativeLayout>
<TextView
android:id="@+id/label"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_below="@+id/container"
android:background="#FFFFFF"
tools:text="This is the label to some image" />
</RelativeLayout>
答案 0 :(得分:0)
嗨,你能展示一幅你想要展示的照片,我几乎不能理解你说的话。我尝试你可以使用imageView的scaleType属性,它有中心,fixXY等。我很感激它可以帮助你。
答案 1 :(得分:0)
是的,你可以。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="#eeeeee">
<ImageView
android:id="@+id/container"
android:layout_width="250dp"
android:layout_height="150dp"
android:layout_centerInParent="true"
android:scaleType="center"
android:src="@drawable/ic_photo_camera_white_48dp"
android:background="@drawable/bg"/>
<TextView
android:id="@+id/label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/container"
android:background="#FFFFFF"
android:gravity="center"
tools:text="This is the label to some image" />
</RelativeLayout>
并在res / drawable中创建bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="clip_horizontal"
android:src="@drawable/photo" />
@ drawable / photo是你想用ID为“photo”的旧ImageView。可以根据图像aspectRatio将重力更改为clip_vertical。
如果你想动态设置“照片”,你可以:
ImageView iv_container = (ImageView) findViewById(R.id.container);
Drawable drawable = getResources().getDrawable(R.drawable.photo_2);
((BitmapDrawable)drawable).setGravity(Gravity.CLIP_HORIZONTAL);
iv_container.setBackgroundDrawable(drawable);