Procházet zdrojové kódy

发现应用详情界面动画优化

zengjiebin před 7 roky
rodič
revize
cf045d01f9

+ 19 - 14
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java

@@ -115,11 +115,13 @@ public class ActFindGame extends BaseActivity {
                 //图标位置变化
                 int find_game_top = getResources().getDimensionPixelSize(R.dimen.find_game_top);
                 int find_icon_with = getResources().getDimensionPixelSize(R.dimen.find_icon_with);
+//                int leftMargin = getResources().getDimensionPixelSize(R.dimen.content_padding_5);
                 int titleHeight = img_baseactivity_title.getHeight();
                 int titleWidth = img_baseactivity_title.getWidth();
+                int topRow = (titleHeight - find_game_name_tv.getHeight() - find_game_info_tv.getHeight()) / 5;
 
-                int willTop = Math.max(0, find_game_top + verticalOffset);
-                int row = (find_icon_with * willTop + titleHeight * (find_game_top - willTop)) / find_game_top;
+                int willTop = Math.max(topRow/2, find_game_top + verticalOffset);
+                int row = (find_icon_with * willTop + titleHeight * (find_game_top - willTop)) / find_game_top - topRow;
                 RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) find_game_iv.getLayoutParams();
                 layoutParams.leftMargin = Math.max(titleWidth, (G.WIDTH - find_icon_with) / 2 + verticalOffset);
                 layoutParams.topMargin = willTop;
@@ -127,22 +129,25 @@ public class ActFindGame extends BaseActivity {
                 layoutParams.height = row;
                 find_game_iv.setLayoutParams(layoutParams);
                 //名字位置变化
-                int topRow = (titleHeight - find_game_name_tv.getHeight() - find_game_info_tv.getHeight()) / 4;
                 RelativeLayout.LayoutParams layoutParams2 = (RelativeLayout.LayoutParams) find_game_name_tv.getLayoutParams();
-                layoutParams2.leftMargin = Math.max(titleWidth + find_icon_with, (G.WIDTH - find_game_name_tv.getWidth()) / 2 + verticalOffset);
-                layoutParams2.topMargin = Math.max(topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top2) + verticalOffset);
+                layoutParams2.leftMargin = Math.max(titleWidth + row + 2 * topRow, (G.WIDTH - find_game_name_tv.getWidth()) / 2 + verticalOffset);
+                layoutParams2.topMargin = Math.max(2 * topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top2) + verticalOffset);
                 find_game_name_tv.setLayoutParams(layoutParams2);
                 //信息位置变化
                 RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) find_game_info_tv.getLayoutParams();
-                layoutParams3.leftMargin = Math.max(titleWidth + find_icon_with, (G.WIDTH - find_game_info_tv.getWidth()) / 2 + verticalOffset);
-                layoutParams3.topMargin = Math.max(find_game_name_tv.getHeight() + 2 * topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top3) + verticalOffset);
+                layoutParams3.leftMargin = Math.max(titleWidth + row + 2 * topRow, (G.WIDTH - find_game_info_tv.getWidth()) / 2 + verticalOffset);
+                layoutParams3.topMargin = Math.max(find_game_name_tv.getHeight() + 4 * topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top3) + verticalOffset);
                 find_game_info_tv.setLayoutParams(layoutParams3);
                 //下载按钮位置变化
                 RelativeLayout.LayoutParams layoutParams4 = (RelativeLayout.LayoutParams) find_game_down_tv.getLayoutParams();
                 layoutParams4.setMarginEnd(Math.max(ibtn_baseactivity_right.getWidth(), (G.WIDTH - find_game_down_tv.getWidth()) / 2 + verticalOffset));
-                layoutParams4.topMargin = Math.max((titleHeight - find_game_down_tv.getHeight()) / 2, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);
+                layoutParams4.topMargin = Math.max(topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);
                 find_game_down_tv.setLayoutParams(layoutParams4);
-                if (willTop == 0) {
+                //星级位置变化
+                RelativeLayout.LayoutParams layoutParams5 = (RelativeLayout.LayoutParams) find_game_xin.getLayoutParams();
+                layoutParams5.topMargin = getResources().getDimensionPixelSize(R.dimen.find_game_top5) + verticalOffset;
+                find_game_xin.setLayoutParams(layoutParams5);
+                if (willTop == topRow/2) {
                     LogUtil.println("ActFindGame", "onOffsetChanged", 2, verticalOffset);
                     if (mIsExpanded) {
 //                        txt_baseactivity_title.setVisibility(View.INVISIBLE);
@@ -340,11 +345,11 @@ public class ActFindGame extends BaseActivity {
         //游戏简介与下载
         ViewUtil.setImage(find_game_iv, findApp.getIcon());
         ViewUtil.setText(find_game_name_tv, findApp.getName());
-//        final boolean isNeedReservation = !findApp.isCanDonload();//这里认为只有两种状态:可下载与预约下载
-//        if (isNeedReservation)
-//            ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "开放时间:%s", TimeUtil.TimeStamp2Date(findApp.getDownload_at(), "yyyy-MM-dd\tHH:mm")));
-//        else
-        ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "厂商:%s | 版本号:%s\t包体大小:%sM", findApp.getManufacturer(), findApp.getVersions(), findApp.getPackage_size()));
+        final boolean isNeedReservation = !findApp.isCanDonload();//这里认为只有两种状态:可下载与预约下载
+        if (isNeedReservation)
+            ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "开放时间:%s", TimeUtil.TimeStamp2Date(findApp.getDownload_at(), "yyyy-MM-dd\tHH:mm")));
+        else
+            ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "厂商:%s | 版本号:%s\t包体大小:%sM", findApp.getManufacturer(), findApp.getVersions(), findApp.getPackage_size()));
 
         find_game_xin.setRating(findApp.getScore() / 2);
 

+ 21 - 67
app/src/main/res/layout/act_find_game.xml

@@ -19,68 +19,11 @@
 
             <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
+                android:layout_height="280dp"
                 android:gravity="center_horizontal"
                 android:orientation="vertical"
-                android:paddingBottom="@dimen/content_padding_10"
-                android:paddingEnd="@dimen/content_padding_20"
-                android:paddingStart="@dimen/content_padding_20"
-                android:paddingTop="@dimen/status_bar_height"
                 app:expandedTitleTextAppearance="@style/TextAppearance.Design.CollapsingToolbar.Expanded"
-                app:layout_scrollFlags="scroll|exitUntilCollapsed">
-
-                <TextView
-                    android:layout_width="match_parent"
-                    android:layout_height="?attr/actionBarSize"
-                    android:gravity="center"
-                    android:text="关于小绵羊"
-                    android:textColor="@color/black_text_deep"
-                    android:textSize="@dimen/text_size_4"
-                    android:visibility="invisible" />
-
-                <ImageView
-                    android:layout_width="70dp"
-                    android:layout_height="70dp"
-                    android:layout_marginTop="@dimen/content_padding"
-                    android:visibility="invisible" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="5dp"
-                    android:text="@string/app_name"
-                    android:textColor="@color/title"
-                    android:textSize="16sp"
-                    android:visibility="invisible" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="5dp"
-                    android:gravity="center"
-                    android:lineSpacingExtra="5dp"
-                    android:text="厂商:网易 | 版本号:7.9"
-                    android:textColor="@color/black_666666"
-                    android:textSize="15sp"
-                    android:visibility="invisible" />
-
-                <android.support.v7.widget.AppCompatRatingBar
-                    android:id="@+id/find_game_xin"
-                    style="@style/style_rating_bar"
-                    android:layout_width="wrap_content"
-                    android:layout_marginTop="8dp"
-                    android:isIndicator="true"
-                    android:numStars="5"
-                    android:rating="1.5"
-                    android:stepSize="0.5" />
-
-                <TextView
-                    style="@style/style_button_wrap"
-                    android:layout_marginTop="8dp"
-                    android:layout_width="@dimen/find_bt_with"
-                    android:text="下载"
-                    android:visibility="invisible"/>
-            </LinearLayout>
+                app:layout_scrollFlags="scroll|exitUntilCollapsed"/>
 
         </android.support.design.widget.AppBarLayout>
 
@@ -430,17 +373,17 @@
         <ImageView
             android:id="@+id/img_baseactivity_title"
             android:layout_width="wrap_content"
-            android:layout_height="?attr/actionBarSize"
+            android:layout_height="match_parent"
             android:gravity="center_vertical"
-            android:paddingEnd="@dimen/content_padding_20"
-            android:paddingStart="@dimen/content_padding_20"
+            android:paddingEnd="@dimen/content_padding"
+            android:paddingStart="@dimen/content_padding"
             android:scaleType="centerInside"
             android:src="@drawable/narrow_back_black" />
 
         <TextView
             android:id="@+id/txt_baseactivity_title"
             android:layout_width="match_parent"
-            android:layout_height="?attr/actionBarSize"
+            android:layout_height="match_parent"
             android:gravity="center"
             android:text="@string/app_name"
             android:textColor="@color/black_text_deep"
@@ -449,13 +392,15 @@
         <!--右边图片按钮-->
         <ImageButton
             android:id="@+id/ibtn_baseactivity_right"
-            android:layout_width="?attr/actionBarSize"
+            android:layout_width="wrap_content"
             android:layout_height="match_parent"
             android:layout_alignParentEnd="true"
             android:layout_centerVertical="true"
+            android:paddingEnd="@dimen/content_padding"
+            android:paddingStart="@dimen/content_padding"
             android:background="@color/translate"
-            android:gravity="center"
-            android:minWidth="?attr/actionBarSize"/>
+            android:src="@mipmap/share"
+            android:gravity="center"/>
     </RelativeLayout>
 
     <ImageView
@@ -483,11 +428,20 @@
         android:layout_marginTop="@dimen/find_game_top3"
         android:layout_below="@+id/status_height_view"
         android:gravity="center"
-        android:lineSpacingExtra="5dp"
         android:text="厂商:网易 | 版本号:7.9"
         android:textColor="@color/black_666666"
         android:textSize="12sp" />
 
+    <android.support.v7.widget.AppCompatRatingBar
+        android:id="@+id/find_game_xin"
+        style="@style/style_rating_bar"
+        android:layout_width="wrap_content"
+        android:layout_marginTop="@dimen/find_game_top5"
+        android:layout_centerHorizontal="true"
+        android:isIndicator="true"
+        android:numStars="5"
+        android:rating="1.5"
+        android:stepSize="0.5" />
     <TextView
         android:id="@+id/find_game_down_tv"
         style="@style/style_button_wrap"

+ 3 - 2
app/src/main/res/values/common.xml

@@ -92,6 +92,7 @@
     <dimen name="find_icon_with">70dp</dimen>
     <dimen name="find_game_top">68dp</dimen>
     <dimen name="find_game_top2">144dp</dimen>
-    <dimen name="find_game_top3">170dp</dimen>
-    <dimen name="find_game_top4">220dp</dimen>
+    <dimen name="find_game_top3">172dp</dimen>
+    <dimen name="find_game_top4">222dp</dimen>
+    <dimen name="find_game_top5">220dp</dimen>
 </resources>