我正在Xamarin上开发移动应用程序.
在应用程序中,有一个ImageView显示的图像太小而无法适合屏幕的宽度.
我想缩放图像以适合屏幕宽度,同时保持宽高比.
我的axml
android:id="@+id/overlayImageContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
android:id="@+id/overlayImageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:scaleType="fitCenter"/>
结果
两个ImageViews显示a)比屏幕宽度宽的图片和b)比屏幕宽度窄的图片
我尝试了android:scaleType和android:adjustViewBounds =“ true”的各种组合,但均未成功.
解决方法:
扩展ImageView类
using Android.Content;
using Android.Util;
using Android.Widget;
namespace Nsa.BigBrotherUtility.Helpers
{
///
/// DynamicImageView is a helper extension that overrides OnMeasure in order to scale the said image
/// to fit the entire width/or height of the parent container.
///
public class DynamicImageView : ImageView
{
public DynamicImageView(Context context, IAttributeSet attributeSet) : base(context, attributeSet)
{
}
protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int width = MeasureSpec.GetSize(widthMeasureSpec);
int height = width * Drawable.IntrinsicHeight / Drawable.IntrinsicWidth;
SetMeasuredDimension(width, height);
}
}
}
我的axml
android:id="@+id/overlayImageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
/>
结果
现在,在保持宽高比的同时,可以将600×600的图像拉伸为填充屏幕的宽度
标签:xamarin,android
来源: https://codeday.me/bug/20191119/2037142.html