Android 旋转表盘

使用91手机助手的时候,感觉侧边栏上面的表盘很漂亮,小动画很酷,想在MFC编程的时候,实现这个很困难好像,总之是没有实现过,现在要实现了。

第一步骤:反编译91手机助手的APK,拿到所有的资源文件。用android IDE中的Devices视图,打开那个多个手机重叠的图片,查看他的布局。

第二步骤:不是很正规,我去找drawable下面找图片,把res导入一个新建的工程,搜索图片定位到xml文件,看到,没有使用自定义的控件,就是几个图片,把代码拷贝出来。

<LinearLayout android:gravity="center_horizontal" 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="160.0dip" 
        android:layout_weight="1.0">
        
                    <RelativeLayout android:layout_width="wrap_content" android:layout_height="120.0dip">
                        <ImageView 
                            android:id="@+id/memory_loading" 
                            android:background="@drawable/memory_loading" 
                            android:visibility="gone" 
                            android:layout_width="125.0dip" 
                            android:layout_height="125.0dip"
                             android:layout_marginTop="10.0dip" 
                             android:scaleType="fitXY" 
                             android:layout_alignParentBottom="true" />
                        
                        <RelativeLayout android:id="@+id/memorylayout" android:padding="2.0dip" 
                            android:visibility="visible" android:layout_width="140.0dip"
                             android:layout_height="140.0dip" android:layout_alignParentBottom="true">
                            <ImageView 
                                android:background="@drawable/memory_value"
                                 android:layout_width="110.0dip" 
                                 android:layout_height="110.0dip" 
                                 android:layout_centerInParent="true" />
                            
                            <ImageView android:id="@+id/clear_loading" 
                                android:background="@drawable/memory_loading" 
                                android:visibility="gone" 
                                android:layout_width="110.0dip" 
                                android:layout_height="110.0dip"
                                 android:layout_centerInParent="true" />
                            
                            <ImageView 
                                android:id="@+id/memory_pointer" 
                                android:paddingTop="15.0dip" 
                                android:paddingRight="18.0dip" 
                                android:layout_width="100.0dip"
                                android:layout_height="100.0dip"
                                android:src="@drawable/memory_point_back"
                                android:scaleType="center"
                                android:layout_centerInParent="true"
                                android:layout_centerHorizontal="true" />
                            
                        </RelativeLayout>
                    </RelativeLayout>
         </LinearLayout>
                
添加需要的3个图片资源。

第三步:反编译是拿不到源文件的,明显就是一个动画。自己添加代码,给外层的RelativeLayout添加响应事件:

 imageView.getLocationOnScreen(location);
                 int width = ( imageView.getRight() - imageView.getLeft()) / 2;
                 int height = ( imageView.getBottom() - imageView.getTop()) / 2;
                 
                 final Animation animation = new RotateAnimation(0,360,width, height);
                 animation.setDuration(2000);
                 imageView.startAnimation(animation);
效果就实现了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值