水平居中图像
Centering an image, horizontally
我刚刚开始开发我的第一个 Android 应用程序。我在 Android Studio 工作,我最初的问题是在第一页的顶部显示客户徽标。
我已经弄清楚如何将徽标变成 .9.png,并使用 android-drawable-importer 插件以各种所需的分辨率将其加载到项目中。
现在我的问题只是让图像在我的显示器上正确缩放。
目前,我正在使用 LinearLayout,ImageView 占据了显示器的顶部区域:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="12"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:src="@drawable/mylogo"
/>
<!-- ... -->
</LinearLayout>
这样一来,我的徽标就占据了显示屏顶部的 1/6,水平居中,但它不会拉伸以填满显示屏的整个宽度。如果我添加 android:scaleType="fitXY",它会缩放以水平填充,但也会垂直缩放,导致我看不到徽标的顶部和底部。
有没有办法显示图像,使其垂直适合,水平填充?
我正在编辑它,以稍微扩大它的范围。可能是我太专注于制作 9-patch 工作,并且有更简单的解决方案来解决我的问题。
我需要的很简单 - 我想要一个徽标显示在页面的顶部区域,水平居中,徽标不会因 x 轴或 y 轴缩放而变形,但背景颜色会延伸到显示器的边缘,水平。
如果九个补丁不能做到这一点,也许其他东西可以。
使用android:scaleType="fitXY"。这个属性是 9patch 工作所必需的。此外,还有一些使用 9patch 时需要注意的事项。
1) 使用名称引用可绘制对象但不包括 .9.png(如果您仍在使用 tisk-,eclipse 中的自动完成功能将处理此问题提斯克)
2) 确保在主 /drawable 文件夹下只有 1 张图像(不是每个 dpi 文件夹的版本)
3) 图片必须使用 :background 指定,而不是 :src (这让我卡住了一段时间)
android:background="@drawable/splash_logo"
4) 确保包含它的图像和布局正在使用:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
希望这对你的身高增长有所帮助,干杯!
使用透明背景的徽标,然后将 ImageView
的 android:background
设置为您需要的颜色怎么样?这样您就可以更好地控制徽标显示?
此外,您是否尝试过使用其他 scale types?:
尝试设置 android:scaleType="fitCenter"
,您的图像应显示在父图像的中央,并缩放以尽可能多地填充可用 space。
如果图像仍然缩放不正确,您还可以设置android:adjustViewVounds参数以使其更符合您的需要
您可以尝试这样的操作:
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:src="@drawable/your_logo_image"
android:background="@color/your_logo_image_background_color"
android:scaleType="fitCenter"/>
这是一种解决方法,一种 "ugly" 解决方案。
我同意 porfoliobuilder,九块图像可能不是徽标的最佳方法。
我刚刚开始开发我的第一个 Android 应用程序。我在 Android Studio 工作,我最初的问题是在第一页的顶部显示客户徽标。
我已经弄清楚如何将徽标变成 .9.png,并使用 android-drawable-importer 插件以各种所需的分辨率将其加载到项目中。
现在我的问题只是让图像在我的显示器上正确缩放。
目前,我正在使用 LinearLayout,ImageView 占据了显示器的顶部区域:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="12"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:src="@drawable/mylogo"
/>
<!-- ... -->
</LinearLayout>
这样一来,我的徽标就占据了显示屏顶部的 1/6,水平居中,但它不会拉伸以填满显示屏的整个宽度。如果我添加 android:scaleType="fitXY",它会缩放以水平填充,但也会垂直缩放,导致我看不到徽标的顶部和底部。
有没有办法显示图像,使其垂直适合,水平填充?
我正在编辑它,以稍微扩大它的范围。可能是我太专注于制作 9-patch 工作,并且有更简单的解决方案来解决我的问题。
我需要的很简单 - 我想要一个徽标显示在页面的顶部区域,水平居中,徽标不会因 x 轴或 y 轴缩放而变形,但背景颜色会延伸到显示器的边缘,水平。
如果九个补丁不能做到这一点,也许其他东西可以。
使用android:scaleType="fitXY"。这个属性是 9patch 工作所必需的。此外,还有一些使用 9patch 时需要注意的事项。
1) 使用名称引用可绘制对象但不包括 .9.png(如果您仍在使用 tisk-,eclipse 中的自动完成功能将处理此问题提斯克)
2) 确保在主 /drawable 文件夹下只有 1 张图像(不是每个 dpi 文件夹的版本)
3) 图片必须使用 :background 指定,而不是 :src (这让我卡住了一段时间)
android:background="@drawable/splash_logo"
4) 确保包含它的图像和布局正在使用:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
希望这对你的身高增长有所帮助,干杯!
使用透明背景的徽标,然后将 ImageView
的 android:background
设置为您需要的颜色怎么样?这样您就可以更好地控制徽标显示?
此外,您是否尝试过使用其他 scale types?:
尝试设置 android:scaleType="fitCenter"
,您的图像应显示在父图像的中央,并缩放以尽可能多地填充可用 space。
如果图像仍然缩放不正确,您还可以设置android:adjustViewVounds参数以使其更符合您的需要
您可以尝试这样的操作:
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:src="@drawable/your_logo_image"
android:background="@color/your_logo_image_background_color"
android:scaleType="fitCenter"/>
这是一种解决方法,一种 "ugly" 解决方案。
我同意 porfoliobuilder,九块图像可能不是徽标的最佳方法。