我的应用程序中有一些动画,它们工作正常。但我想修改手机 ui 和平板电脑 ui 之间的行为(例如)。那么我应该在哪里设置行值(例如 android:duration="xxx")?
[...]
<translate
android:duration="700"
android:fromYDelta="90%p"
android:toYDelta="0"/>
[...]
根据官方文档,没有首选的地方。
values
您应该在文件夹中存储一个您希望不同屏幕尺寸的值。因此,例如,您可以有一个名为 default 的文件夹,其中一个名为values
default 并values-sw600dp
在其中为您的持续时间指定一个值,该值仅适用于最小宽度为 600dp 的屏幕。
然后在values
andvalues-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"/>
这样,您可以根据文件夹名称为不同的设备大小指定不同的设置,就像使用可绘制对象一样。
要检查设备是电话还是选项卡,您可以在名为 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 值,您可以通过此动态设置动画的持续时间