Android打造不一样的圆盘签到

Android打造不一样的圆盘签到

哎,期末考试完后,找工作找了一个月,好不容易找到一个工作,要实现的效果,哇,当时一看,感觉好难(主要是对动画不了解,不熟悉),但是没办法,毕竟最终还是要实现的,要不然,公司养你何用,说了这么多,先看下最终要实现的效果是啥吧:

当时看到这个效果说实在的,根本不知道如何下手,在伟大的群友的帮助下,找到了启舰大神写的动画专栏Animation动画详解,看完这个系列文章后,然后再看这个效果,突然发现其实并不是很难,都是一些最简单的动画来实现的,主要用到:位移、缩放、透明度,然后把这些最简单的动画,用AnimatorSet控制一下就好了。OK,我们来具体的分析一下吧!

ImageView的初始位置在哪里?

在实现这个动画的时候我们首先要明确一点就是周围的圆和中间的大圆的初始位置和初始大小分别在哪里,我们可以很清楚的看到,周围的小圆是围成的一个圆,然后大圆是在圆心的位置,且当点击的时候,会交换位置,之前大的变小,小的变大,这样的话,我们就可以确定,其实所有的圆的初始位置和初始大小都是在屏幕的中心,然后通过动画的位移,位移到周围的,中间的圆是通过缩放来达到放大效果的。中间的那些显示出来有100分的那些TextView也是同理哈,所以布局代码如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:background="@mipmap/bg_main">
    <!--提醒签到布局-->
    <LinearLayout
        android:layout_width="110dp"
        android:layout_height="25dp"
        android:layout_marginTop="50dp"
        android:background="@drawable/shape_layout_round"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextSwitcher
                android:id="@+id/ts_hint_sign_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"/>

            <ImageSwitcher
                android:id="@+id/is_hint_sign_image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"/>
        </RelativeLayout>

    </LinearLayout>
    <!--初始时中间的大圆,通过动画来放大-->
    <!--签到1-->
    <ImageView
        android:id="@+id/iv_sign_one"
        style="@style/sign_image_attribute"
        android:background="@drawable/shape_circle_orange"
        android:src="@mipmap/zhiwen"
        android:visibility="visible"/>
    <!--积分1-->
    <TextView
        android:id="@+id/tv_integral_one"
        style="@style/sign_imge_top_text_attribute"/>
    <!--签到2-->
    <ImageView
        android:id="@+id/iv_sign_two"
        style="@style/sign_image_attribute"
        android:background="@drawable/shape_circle_red"/>

    <TextView
        android:id="@+id/tv_integral_two"
        style="@style/sign_imge_top_text_attribute"/>
    <!--图片和图片中间的内容-->
    <TextView
        android:id="@+id/tv_two_image_center_one"
        style="@style/sign_text_attribute"/>
    <!--签到3-->
    <ImageView
        android:id="@+id/iv_sign_three"
        
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值