我的应用程序中有一些动画,它们工作正常。但我想修改手机ui和平板电脑ui之间的行为(例如)。那么我应该在哪里设置行值(例如android:duration =“xxx”)?
[...]
<translate
android:duration="700"
android:fromYDelta="90%p"
android:toYDelta="0"/>
[...]
根据official documentation ,没有首选的地方。
答案 0 :(得分:11)
您应该在values
文件夹中存储您希望在屏幕尺寸上有所不同的值。例如,您可以将一个名为values
的文件夹作为默认值,一个名为values-sw600dp
,并在其中指定一个持续时间的值,该值仅适用于宽度最小为600dp的屏幕。
然后在values
和values-sw600dp
中,您可以拥有一个名为translation.xml
的文件或其他描述动画的文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="duration">700</integer>
</resources>
然后你在哪里做动画xml:
<translate
android:duration="@integer/duration"
android:fromYDelta="90%p"
android:toYDelta="0"/>
通过这种方式,您可以根据文件夹名称为不同的设备大小指定不同的设置,就像使用drawable一样。
答案 1 :(得分:0)
要检查设备是手机还是标签,你可以在名为isTab.xml(或任何你想要的)的值文件夹中创建一个xml,其中的代码将是
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isTablet">false</bool>
</resources>
和values-xlarge文件夹中的xml相同,但在xml中的值为true,即
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isTablet">true</bool>
</resources>
现在当它是一个标签时,将访问value-xlarge文件夹。您可以通过
获取程序中的值boolean isTab= getResources().getBoolean(R.bool.isTablet);
并且根据isTab值,您可以按this
动态设置动画的持续时间