0

我在缩放的相对布局上设置图像。但是,当设置图像时,布局对齐规则会被破坏。图像应该与左侧对齐,但会发生变化。图像越大,图像放置在离左手边缘越远的位置。依赖图像位置的其他布局项目(如文本)也会移动。缩放后的图像看起来很好,除了它的位置。

图片为200px,bar的实际高度为70dp。我可以调整图像的大小,但我想知道为什么会这样。

编辑 - 我也尝试过动态设置图像image.setImageResource(R.drawable.placeholder);

   <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:background="@drawable/footer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    <ImageView
            android:id="@id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/placeholder"
            android:layout_alignParentLeft="true"
            />
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="test"
            android:layout_marginLeft="15dp"
            android:layout_toRightOf="@id/icon"
            android:layout_above="@id/username"/>

    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@id/username"
            android:text="user name test"
            android:layout_marginBottom="15dp"
            android:layout_marginLeft="15dp"
            android:layout_toRightOf="@id/icon"
            android:layout_alignParentBottom="true"/>
    <ToggleButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/play_media_btn_toggle"
            android:layout_marginTop="15dp"
            android:id="@id/play"
            android:layout_alignParentRight="true"
            android:textOn=""
            android:textOff=""/>
</RelativeLayout>
4

2 回答 2

0

如果您动态设置图像,当您的图像调整大小时,您的支架未设置为适合图像,因此您在一侧(宽度或高度)有一些奇怪的不成比例的间隙。您需要动态地执行此操作,以避免任何间隙。

编辑:这是一个示例,我如何缩放图像(以适应宽度)然后将其设置为持有人并相应地调整持有人的大小,这样我控制持有人和图像的宽度,并且 ImageView(持有人)比例类型为中心。

float scaleFactor = (float)rssLayout.getWidth() / (float)bitmap.getWidth();     
    bitmap = Bitmap.createScaledBitmap(bitmap, (int)(bitmap.getWidth() * scaleFactor), (int)(bitmap.getHeight() * scaleFactor), true);
    bannerImage.setImageBitmap(bitmap);
    LayoutParams params = (LayoutParams) bannerImage.getLayoutParams();             
    params.width = bitmap.getWidth();
    params.height = bitmap.getHeight();
    bannerImage.setLayoutParams(params);

希望这对您有所帮助并享受您的工作

于 2013-05-21T10:37:44.700 回答
0

设置adjustViewBounds您的ImageViewtotrue可能会解决您的问题。默认情况下,ImageViews当他们的内容被缩放时不要缩放他们的边界,创建一个混乱的布局。

于 2013-05-22T07:39:48.493 回答