Android 旋转表盘

来源:互联网 发布:mac tensorflow 安装 编辑:程序博客网 时间:2024/04/19 23:05

使用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
原创粉丝点击