[英]Android how to evaluate view size to keep same proportion in all devices
[英]Android layout inner view keep proportions for all devices
我正在实现此Layout
:
它包含Background Image
, Phone Image
和Phone Image
内的white view
。 那将是一个gif animation
。
这是我的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:background="@drawable/empty_background"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/iphone_background">
<pl.droidsonroids.gif.GifImageView
android:id="@+id/inner_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="140dp"
android:layout_marginTop="240dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
在Lollipop 5.0
上的Nexus 5
,它看起来还不错,但是每种分辨率下的Inner View
(gif)看起来都不同。
任何帮助将是巨大的,谢谢:)
嗯,这需要很好的位计算,您可以使用pixplicity.com并为不同尺寸的屏幕计算不同的dp尺寸。
例如:
如果xhdpi的原始图像尺寸为640 * 480像素,则对于其他图像它将是
长度 :
ldpi @ 320.00dp = 240.00px = 320.00sp = 50.80mm = 2.00英寸= 144.00pt
mdpi @ 320.00dp = 320.00px = 320.00sp = 50.80mm = 2.00英寸= 144.00pt
tvdpi @ 320.00dp = 426.00px = 320.00sp = 50.80mm = 2.00英寸= 144.00pt
hdpi @ 320.00dp = 480.00px = 320.00sp = 50.80mm = 2.00英寸= 144.00pt
xhdpi @ 320.00dp = 640.00px = 320.00sp = 50.80mm = 2.00英寸= 144.00pt
xxhdpi @ 320.00dp = 960.00px = 320.00sp = 50.80mm = 2.00英寸= 144.00pt
xxxhdpi @ 320.00dp = 1280.00px = 320.00sp = 50.80mm = 2.00英寸= 144.00pt
和广度:
ldpi @ 240.00dp = 180.00px = 240.00sp = 38.10mm = 1.50英寸= 108.00pt
mdpi @ 240.00dp = 240.00px = 240.00sp = 38.10mm = 1.50英寸= 108.00pt
tvdpi @ 240.00dp = 319.50px = 240.00sp = 38.10mm = 1.50in = 108.00pt
hdpi @ 240.00dp = 360.00px = 240.00sp = 38.10mm = 1.50英寸= 108.00pt
xhdpi @ 240.00dp = 480.00px = 240.00sp = 38.10mm = 1.50英寸= 108.00pt
xxhdpi @ 240.00dp = 720.00px = 240.00sp = 38.10mm = 1.50英寸= 108.00pt
xxxhdpi @ 240.00dp = 960.00px = 240.00sp = 38.10mm = 1.50英寸= 108.00pt
并且您需要为所有不同的图像保存相同的gif名称,并将它们相应地放置在相应的可绘制文件夹(mdpi,hdpi,xhdpi,xxhdpi)中。
Background Image
可以采用match_parent
尺寸。
但是,对于Phone Image
和GIF Image
尝试把每一个单独的LinearLayouts
堆叠在一个另一个,并设置layout_width
到0dp
和layout_height
到wrap_content
对于用指定一起layout_weight
正确对齐的意见,这可以使你的观点看起来很相似在所有屏幕上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.