我有这个布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rel2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff" >
<ImageView
android:id="@+id/tree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/lemon_large"
android:scaleType="centerCrop"
/>
<ImageView
android:id="@+id/fruit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lemonpiece"
android:layout_alignLeft="@+id/tree"
android:layout_alignTop="@+id/tree"
android:layout_marginLeft="95dp"
android:layout_marginTop="136dp"/>
树正在缩放,顶部和底部始终被裁剪。这是因为屏幕高度变化。我想做的是拥有固定的图像视图,无论它被缩放多少,它都总是在相对于图像视图的相同位置。
我尝试了不同的scaleType值,但实际上它实际上是缩放图像,并且在每个屏幕上,图像都是相对于“树”的其他位置。
我尝试的另一种可能性是将它对齐到屏幕的顶部(alignParentTop,alignParentLeft,scaleType =“matrix”)但这不会起作用,因为有些屏幕非常短,然后图片无法正确适应屏幕。换句话说,我需要保留可伸缩性并锚定顶部图像。
任何想法?
答案 0 :(得分:0)
为Dimensions创建资源XML文件,并输入以下内容,
<强> image_dimens.xml:强>
<dimen name="myValueX">95dp</dimen>
<dimen name="myValueY">136dp</dimen>
在显示ImageViews的活动中
int myValueX = (int) getResources().getDimension(R.dimen.myValueX);
int myValueX = (int) getResources().getDimension(R.dimen.myValueX);
ImageView ivFruit = (ImageView) findViewById(R.id.fruit);
ImageView ivTree = (ImageView) findViewById(R.id.tree);
ivFruit.setX(ivTree.getX() + myValueX);
ivFruit.setY(ivTree.getY() + myValueY);
希望这会有所帮助,Happy Coding!