- android/
- Android 为什么我的720像素图像在我的720像素星系S3中失真
Android 为什么我的720像素图像在我的720像素星系S3中失真
Android 为什么我的720像素图像在我的720像素星系S3中失真,android,android-image,Android,Android Image,我的问题就在标题里。
我尝试将图像放入布局中,我尝试了使用FrameLayout的背景和wrap_内容宽度和高度,还尝试了使用imageView和所有可能的fitScale属性
我就是不明白为什么我的720像素宽的图像是我手机屏幕宽度的一半,这是一个720像素宽的三星galaxy s3
我真正的问题是:
什么是确保我的应用图片不会出现任何失真的最佳方法?首先,你需要考虑屏幕密度和倾斜值,而不是像素。这意味着您正在处理一个“虚拟屏幕”,其中1个dip(与密度无关的像素)表示不同数量的真实屏幕像素,
我的问题就在标题里。
我尝试将图像放入布局中,我尝试了使用FrameLayout的背景和wrap_内容宽度和高度,还尝试了使用imageView和所有可能的fitScale属性
我就是不明白为什么我的720像素宽的图像是我手机屏幕宽度的一半,这是一个720像素宽的三星galaxy s3
我真正的问题是:
什么是确保我的应用图片不会出现任何失真的最佳方法?首先,你需要考虑屏幕密度和倾斜值,而不是像素。这意味着您正在处理一个“虚拟屏幕”,其中1个dip(与密度无关的像素)表示不同数量的真实屏幕像素,具体取决于设备
对于drawables,您可以使用以下类别在任何屏幕上获得清晰的结果:
- ldpi(比例系数0.75)
- mdpi(默认/基线:比例因子1.0)
- hdpi(1.5)
- xhdpi(2.0)
根据这些比例因子创建不同大小的位图版本,以在任何屏幕上获得清晰的结果。您应该从最高分辨率的xhdpi开始,以避免因放大而导致的质量损失
将这些不同版本放入各自的可绘制文件夹(res/drawable ldpi、res/drawable mdpi…)。当然,同一位图的不同版本必须具有相同的文件名,否则将无法工作
其次,你不应该对设备屏幕的高度和宽度做出强烈的假设。您需要布局视图和图形,以便它们动态地利用整个屏幕,而不知道确切的屏幕分辨率。但是,您可以根据屏幕分辨率对这些屏幕分辨率进行较弱的假设
尽量避免基于任何假设的视图的固定大小。在布局XML文件中始终避免使用“px”值。用“蘸”代替
有关更多信息,请阅读文档
你想要达到的效果听起来好像你想要你的图像占据整个屏幕的宽度
如果将图像设置为任何视图(例如FrameLayout)的背景,则显示的图像剪辑取决于该视图的大小
如果该视图的layout_width/layout_height设置为wrap_内容,则其大小取决于其子视图的尺寸和排列。
对于FrameLayout,它取决于FrameLayout的单个子级的大小
如果您使用的是ImageView,默认情况下,图像将被缩放以适合ImageView的大小。ImageView的大小取决于其布局\宽度/布局\高度值。如果您将这些值设置为与父对象匹配,并且如果ImageView有足够的空间“增长”,您应该能够看到图像在整个屏幕上伸展
“增长空间”取决于布局中ImageView的上下文。有邻居占地方吗?父视图是否太小(例如因为换行内容)?寻找这些可能的问题。首先,你需要考虑屏幕密度和倾斜值,而不是像素。这意味着您正在处理一个“虚拟屏幕”,其中1个dip(与密度无关的像素)表示不同数量的真实屏幕像素,具体取决于设备
对于drawables,您可以使用以下类别在任何屏幕上获得清晰的结果:
- ldpi(比例系数0.75)
- mdpi(默认/基线:比例因子1.0)
- hdpi(1.5)
- xhdpi(2.0)
根据这些比例因子创建不同大小的位图版本,以在任何屏幕上获得清晰的结果。您应该从最高分辨率的xhdpi开始,以避免因放大而导致的质量损失
将这些不同版本放入各自的可绘制文件夹(res/drawable ldpi、res/drawable mdpi…)。当然,同一位图的不同版本必须具有相同的文件名,否则将无法工作
其次,你不应该对设备屏幕的高度和宽度做出强烈的假设。您需要布局视图和图形,以便它们动态地利用整个屏幕,而不知道确切的屏幕分辨率。但是,您可以根据屏幕分辨率对这些屏幕分辨率进行较弱的假设
尽量避免基于任何假设的视图的固定大小。在布局XML文件中始终避免使用“px”值。用“蘸”代替
有关更多信息,请阅读文档
你想要达到的效果听起来好像你想要你的图像占据整个屏幕的宽度
如果将图像设置为任何视图(例如FrameLayout)的背景,则显示的图像剪辑取决于该视图的大小
如果该视图的layout_width/layout_height设置为wrap_内容,则其大小取决于其子视图的尺寸和排列。
对于FrameLayout,它取决于FrameLayout的单个子级的大小
如果您使用的是ImageView,默认情况下,图像将被缩放以适合ImageView的大小。ImageView的大小取决于其布局\宽度/布局\高度值。如果您将这些值设置为与父对象匹配,并且如果ImageView有足够的空间“增长”,您应该能够看到图像在整个屏幕上伸展
“增长空间”取决于布局中ImageView的上下文。有邻居占地方吗?父视图是否太小(例如因为换行内容)?查找这些可能的问题。Galaxy S3的宽度为360dp,请使用fill\u父对象作为图像视图的宽度,scaleType=fitXY。将720px宽的图像放在drawable xhdpi文件夹中,您可以将缩小的副本放在drawable和drawable hdpi文件夹中。Galaxy S3的宽度为360dp,请使用填充父级