我必须显示一个半屏尺寸的图像。
此活动的主要线性布局有3个线性布局。
在第一个线性布局中, ImageView ,其高度尺寸必须是屏幕的1/2尺寸。此图像从html标记解析并使用Picasso加载到ImageView 画面很长,我希望它是正常的。
第二和第三种布局必须保持屏幕的1/2尺寸。
您可以从下图中看到它:
先谢谢。
答案 0 :(得分:0)
尝试使用以下解决方案
在您的XML文件中更改为ImageView,就像那样
<com.nitin.widgets.DynamicImageView
android:id="@+id/newsimageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:paddingTop="5dp"
android:src="@drawable/no_image" />
这是完整的代码,用于避免沿左/右边缘的薄间隙
DynamicImageView.java
package com.nitin.widgets;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
public class DynamicImageView extends ImageView {
public DynamicImageView(final Context context, final AttributeSet attrs)
{
super(context, attrs);
}
@Override
protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
final Drawable d = this.getDrawable();
if (d != null) {
//avoid thin vertical gaps along the left/right edges
final int width = MeasureSpec.getSize(widthMeasureSpec);
final int height = (int) Math.ceil(width * (float) d.getIntrinsicHeight() / d.getIntrinsicWidth());
this.setMeasuredDimension(width, height);
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
}
我建议尝试使用此解决方案。它对我有用。
答案 1 :(得分:0)
请使用 scaleType 选项 CenterCrop ,此选项会以更好的比例显示图片。
mapStateToProps
答案 2 :(得分:0)
尝试使用此布局。根据您的要求设置子线性布局的方向。
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scaleType="centerCrop"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout></LinearLayout>
<LinearLayout></LinearLayout>
</LinearLayout>
</LinearLayout>