提示动画

chengzhenyu преди 8 години
родител
ревизия
afe639c1d3

+ 52 - 2
app/src/main/java/ai/pai/client/activity/MainActivity.java

@@ -20,6 +20,7 @@ import android.view.LayoutInflater;
20 20
 import android.view.MenuItem;
21 21
 import android.view.View;
22 22
 import android.view.ViewGroup;
23
+import android.view.animation.CycleInterpolator;
23 24
 import android.widget.ImageButton;
24 25
 import android.widget.ImageView;
25 26
 import android.widget.TextView;
@@ -31,10 +32,11 @@ import com.android.common.utils.TimeUtils;
31 32
 import com.android.views.indicators.Indicator;
32 33
 import com.android.views.indicators.IndicatorViewPager;
33 34
 import com.android.views.indicators.SpringBar;
35
+import com.hanks.htextview.HTextView;
36
+import com.hanks.htextview.HTextViewType;
34 37
 import com.umeng.analytics.MobclickAgent;
35 38
 
36 39
 import java.io.File;
37
-import java.sql.Time;
38 40
 
39 41
 import ai.pai.client.R;
40 42
 import ai.pai.client.beans.GroupInfo;
@@ -63,13 +65,22 @@ public class MainActivity extends AppCompatActivity
63 65
     private PersonInfoPopup personInfoPopup;
64 66
     private ImageButton callGuideBtn;
65 67
     private ImageButton gatherBtn;
68
+    private ImageButton scanQRBtn;
69
+    private ImageButton addGroupBtn;
66 70
     private TextView gatherInfoTextView;
71
+    private HTextView scanQRHintTextView;
72
+    private HTextView addGroupHintTextView;
73
+    private boolean isGuideShow;
74
+    private boolean isDestroy;
67 75
 
68 76
     @Override
69 77
     protected void onCreate(Bundle savedInstanceState) {
70 78
         super.onCreate(savedInstanceState);
71 79
         setContentView(R.layout.activity_main);
72
-
80
+        scanQRHintTextView = (HTextView)findViewById(R.id.tv_scan_qr_hint);
81
+        addGroupHintTextView = (HTextView)findViewById(R.id.tv_add_group_hint);
82
+        scanQRBtn = (ImageButton)findViewById(R.id.floating_btn_scan);
83
+        addGroupBtn = (ImageButton)findViewById(R.id.floating_btn_add);
73 84
         drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
74 85
         NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
75 86
         navigationView.setNavigationItemSelectedListener(this);
@@ -124,6 +135,7 @@ public class MainActivity extends AppCompatActivity
124 135
 
125 136
     @Override
126 137
     protected void onDestroy() {
138
+        isDestroy = true;
127 139
         super.onDestroy();
128 140
     }
129 141
 
@@ -406,4 +418,42 @@ public class MainActivity extends AppCompatActivity
406 418
         }
407 419
     }
408 420
 
421
+    public void showGuideAnim(){
422
+        if(isGuideShow){
423
+            return;
424
+        }
425
+        isGuideShow = true;
426
+        scanQRHintTextView.setVisibility(View.VISIBLE);
427
+        scanQRHintTextView.setAnimateType(HTextViewType.TYPER);
428
+        scanQRHintTextView.animateText(getString(R.string.click_to_scan_qr));
429
+        scanQRBtn.animate().translationX(10).scaleX(1.2f).scaleY(1.2f).setInterpolator(new CycleInterpolator(5)).setDuration(2000).start();
430
+        scanQRHintTextView.postDelayed(new Runnable() {
431
+            @Override
432
+            public void run() {
433
+                if(isDestroy){
434
+                    return;
435
+                }
436
+                if(scanQRHintTextView!=null && scanQRHintTextView.isShown()){
437
+                    scanQRHintTextView.setVisibility(View.GONE);
438
+                }
439
+                if(addGroupHintTextView!=null){
440
+                    addGroupHintTextView.setVisibility(View.VISIBLE);
441
+                    addGroupHintTextView.setAnimateType(HTextViewType.TYPER);
442
+                    addGroupHintTextView.animateText(getString(R.string.click_to_add_group));
443
+                    addGroupBtn.animate().translationX(10).scaleX(1.2f).scaleY(1.2f).setInterpolator(new CycleInterpolator(5)).setDuration(2000).start();
444
+                    addGroupHintTextView.postDelayed(new Runnable() {
445
+                        @Override
446
+                        public void run() {
447
+                            if(isDestroy){
448
+                                return;
449
+                            }
450
+                            if(addGroupHintTextView!=null && addGroupHintTextView.isShown()){
451
+                                addGroupHintTextView.setVisibility(View.GONE);
452
+                            }
453
+                        }
454
+                    },3000);
455
+                }
456
+            }
457
+        },3000);
458
+    }
409 459
 }

+ 8 - 0
app/src/main/java/ai/pai/client/fragments/TabRecentPhotoFragment.java

@@ -38,6 +38,7 @@ import java.util.Arrays;
38 38
 import java.util.HashMap;
39 39
 
40 40
 import ai.pai.client.R;
41
+import ai.pai.client.activity.MainActivity;
41 42
 import ai.pai.client.adapter.RecentPhotoStaggeredAdapter;
42 43
 import ai.pai.client.beans.GroupPhotoItem;
43 44
 import ai.pai.client.db.DBService;
@@ -320,6 +321,13 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh
320 321
                     DBService.getInstance(context).addRecentPhotos(photoItems);
321 322
                     isDataRefreshed = true;
322 323
                 }
324
+                if(isAdded() && refreshAdapter!=null && refreshAdapter.getPhotoList()!=null && refreshAdapter.getPhotoList().size()==0){
325
+                    if(getActivity() instanceof  MainActivity){
326
+                        MainActivity mainActivity = (MainActivity)getActivity();
327
+                        mainActivity.showGuideAnim();
328
+                    }
329
+                }
330
+
323 331
             }
324 332
         };
325 333
         fetchPhotosTask.executeOnExecutor(ThreadExecutor.getInstance().getExecutor(), UrlContainer.HOME_PHOTO_URL);

+ 30 - 2
app/src/main/res/layout/app_bar_main.xml

@@ -2,8 +2,8 @@
2 2
 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 3
     android:layout_width="match_parent"
4 4
     android:layout_height="match_parent"
5
-    android:fitsSystemWindows="true"
6
-   >
5
+    xmlns:htext="http://schemas.android.com/apk/res-auto"
6
+    android:fitsSystemWindows="true">
7 7
 
8 8
     <include layout="@layout/content_main" />
9 9
 
@@ -18,6 +18,20 @@
18 18
         android:layout_marginTop="3dp"
19 19
         android:background="@drawable/floating_add_selector"/>
20 20
 
21
+    <com.hanks.htextview.HTextView
22
+        android:id="@+id/tv_add_group_hint"
23
+        android:layout_width="match_parent"
24
+        android:layout_height="56dp"
25
+        android:gravity="center"
26
+        android:text="@string/click_to_add_group"
27
+        android:layout_gravity="bottom|start"
28
+        android:layout_marginRight="60dp"
29
+        android:layout_marginBottom="6dp"
30
+        android:layout_marginTop="3dp"
31
+        htext:animateType="typer"
32
+        android:visibility="gone"
33
+        android:textSize="17sp"/>
34
+
21 35
     <ImageButton
22 36
         android:id="@+id/floating_btn_scan"
23 37
         android:layout_width="56dp"
@@ -27,6 +41,20 @@
27 41
         android:layout_marginBottom="66dp"
28 42
         android:background="@drawable/floating_qrscan_selector"/>
29 43
 
44
+    <com.hanks.htextview.HTextView
45
+        android:id="@+id/tv_scan_qr_hint"
46
+        android:layout_width="match_parent"
47
+        android:layout_height="56dp"
48
+        android:gravity="center"
49
+        android:text="@string/click_to_scan_qr"
50
+        android:layout_gravity="bottom|start"
51
+        android:layout_marginRight="60dp"
52
+        android:layout_marginBottom="66dp"
53
+        android:layout_marginTop="3dp"
54
+        htext:animateType="typer"
55
+        android:visibility="gone"
56
+        android:textSize="17sp"/>
57
+
30 58
     <ImageButton
31 59
         android:id="@+id/floating_btn_call"
32 60
         android:layout_width="56dp"

+ 4 - 0
app/src/main/res/values/strings.xml

@@ -252,4 +252,8 @@
252 252
     <string name="group_admin_not_me">您不是该群的管理员,无法删除</string>
253 253
 
254 254
     <string name="click_to_take_photo">点我拍照,记录您的精彩瞬间吧</string>
255
+
256
+    <string name="click_to_add_group">点我可以新建拍照群组哦</string>
257
+
258
+    <string name="click_to_scan_qr"> 点我扫码加入朋友建的群组吧</string>
255 259
 </resources>