wel*_*ell 5 android proguard nineoldandroids
我正在使用NineOldAndroids的ObjectAnimators来淡化Android Map v2标记,其代码如下:
mMarkerSelected = mMap.addMarker(new MarkerOptions()
.position(location.getLatLng())
.title(location.getName())
.snippet(location.getId())
.icon(BitmapDescriptorFactory.defaultMarker(location.getMarkerHue())));
mMarkerSelected.setAlpha(0.0f);
ObjectAnimator.ofFloat(mMarkerSelected, "alpha", 0.0f, 1.f)
.setDuration(300).start();
Run Code Online (Sandbox Code Playgroud)
这与apk的可调试版本完美配合.
然而,当我签我的APK,并搭配使用ProGuard,突然标记不褪色.我的猜测是,阿尔法属性已经被混淆,使传递"alpha"
到ObjectAnimator.ofFloat
不符合的混淆的阿尔法属性相匹配Marker
.使用ProGuard时如何让动画工作?
为了完整起见,这是我的proguard-rules.txt的唯一内容
-dontwarn com.squareup.okhttp.**
Run Code Online (Sandbox Code Playgroud)
Blu*_*ell 10
它使用反射,所以你需要你的方法名称完整,即setAlpha(),在你的proguard配置中这样的东西:
# This is due to ObjectAnimator using reflection to access get/sets
-keep class com.your.package.ClassThatUsesObjectAnimator { *; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2589 次 |
最近记录: |