Dee*_*eeV 9 android android-animation android-layout
目前我有一个ImageView扩展设备的长度,并缩放3.显然,在屏幕外侧面裁剪.我希望动画与设备的左侧图像的左侧开始,然后在转移,直到图像的右侧是在设备的右侧.
我可以通过将图像设置为它的初始基础来实现它们,然后基本上这样做:
<objectAnimator
android:propertyName="translationX"
android:duration="6000"
android:valueTo="-1280"
android:valueType="floatType"
/>
Run Code Online (Sandbox Code Playgroud)
但是,这只能起作用,因为我知道图像的确切尺寸以及我的摩托罗拉Xoom的确切尺寸.当然,我希望这可以在任何设备上工作,所以我需要一些不太硬编码的东西.使用Tween动画,它可以正常工作,因为您可以根据其大小的百分比来翻译某些内容.它并不完美,但它对这种效果起到了很好的作用.财产动画似乎没有这个.在translationX和X属性必须有单位.
有没有一种简单的方法来根据相对位置转换具有属性动画的视图?我是否必须为每个维度制作单独的动画文件?有没有其他方法可以实现这种效果?我不想制作自己的动画.
您能否为您想要支持的具有已知 dp 宽度的单独设备尺寸“桶”(例如平板电脑、手机景观等)创建代码。然后您可以使用下面的方法来缩放图像(其中 384 是特定设备存储桶宽度的 384dp),并对您需要的 valueTo int 执行类似的操作。
//Get the device screen pixel density so that you can scale
//the image in density independent pixels rather than pixels
final float scale = getActivity().getResources().
getDisplayMetrics().density;
//set the number of dp for the height and width by changing
//the number you multiply the (scale + 0.5f) by e.g. 384
int pixelsh = (int) (384 * scale + 0.5f);
int pixelsw = (int) (384 * scale + 0.5f);
Run Code Online (Sandbox Code Playgroud)
这就是将绝对像素转换为dp像素的方法。我不知道如何将它们用于您正在做的事情,但至少这是一个开始。
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |