0

这一直困扰着我一段时间,我不确定如何解决它。两个ImageView并排放置不同的图像尺寸,但要保持相同的宽高比和大小

假设我有以下布局:2在每个ImageView下带有TextView的ImageView。图像正在远程检索。我希望每个ImageView占用他们所在Activity的宽度的40%,并在其下面留出空白处。 TextView会比每个ImageView低5%左右。

我试了一下:

把自己的LinearLayout每对的ImageView和TextView的,所以2个LinearLayouts,每个LinearLayout中的layout_width设置为FILL_PARENT和平等layout_weight(0.5)两种。 每个ImageView都有一个fill_parent的layout_width和一个15dip的layout_margin。 layout_height被设置为wrap_content(这是我不确定如何设置的参数)。

工作正常,但问题是,所有传入的图像是不同的大小和比例,所以他们看起来很奇怪并排。

我开始设置: 机器人:scaleType = “centerCrop” 机器人:adjustViewBounds = “真”

这有助于但每个ImageView的仍然是不同的大小的时候。在这一点上,我只是把每个ImageView放在一个固定的宽度上,或者对于两个ImageView都是 ,这对我们来说很有帮助,但是对于更大尺寸的设备来说,这看起来很奇怪。我怎样才能实现我想要完成的目标?

回答

1

在第二个选项,尝试没有“AdjustViewBounds”请记住:

如果你想的ImageView调整其边界 保持其绘制的长宽比设置为true。

但这里是我会在你的情况做:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="0.5" 
    android:orientation="vertical" > 


    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:scaleType="center" 
     android:src="@drawable/99" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal|bottom" 
     android:text="TextView" /> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="0.5" 
    android:orientation="vertical" > 


    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:scaleType="center" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:text="TextView" /> 
</LinearLayout> 

而且它看起来就像在更大屏幕上:

Test1

而且在小屏幕上:

test2

我更喜欢在这种情况下中心,因为如果你有更小的图片,然后他们会更好看。如果可以的话,我尽量避免使用固定尺寸,因为正如你所说,它在大型设备上看起来不太好。

您还可以为每个场景尺寸制作不同的布局。但是你必须保留所有这些。检查Supporting Multiple Screen Sizes(如果你还没有;))。

+0

感谢,但是图像之间的尺寸差异并不大,我们假设最小的png和最大的png之间的最大差异为60像素。如果尺寸差异如上所述,则居中看起来不错。但是,如果它是一个20像素的差异,图像不会并排看起来不错。我在这个评论中使用像素来描述不同的图像尺寸,而不是它们的布局方式(所以没有人说使用DIP!) – StackOverflowed

+0

好了,稍有不同......你能解释“有时还有不同的尺寸”吗?什么时候?也许使用:layout_height = match_parent?并在线性布局内的ImageView而不是在TextView的重量?离开中心作物... – nsemeniuk

相关问题