app/AndroidManifest.xml
@@ -83,6 +83,7 @@ <activity android:name="com.hanju.video.app.ui.main.MainActivity" android:label="@string/app_name" android:configChanges="keyboard|orientation|screenSize" android:launchMode="singleTask" android:theme="@style/AppTabTheme3"></activity> <activity app/build.gradle
@@ -37,6 +37,7 @@ //----------阿里百川结束------------ implementation 'androidx.cardview:cardview:1.0.0' implementation 'com.google.android.material:material:1.3.0' compile ('com.android.support:support-v4:23.4.0'){ force = true; app/res/color/selector_bottom_bar_text.xml
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/white" android:state_checked="true"></item> <item android:color="#999999" android:state_checked="false"></item> <item android:color="@color/theme" android:state_checked="true"></item> <item android:color="#FFD1D1D1" android:state_checked="false"></item> </selector> app/res/drawable-xhdpi/arrow_right.pngapp/res/drawable-xhdpi/ic_activity_main_search.pngapp/res/drawable-xhdpi/ic_auth_notify_top.png
app/res/drawable-xhdpi/ic_like.pngapp/res/drawable-xhdpi/ic_like_highlight.pngapp/res/drawable-xhdpi/ic_mine_about.pngapp/res/drawable-xhdpi/ic_mine_advice.pngapp/res/drawable-xhdpi/ic_mine_settings.pngapp/res/drawable-xhdpi/ic_scan_count.pngapp/res/drawable-xhdpi/ic_splash_bg.pngapp/res/drawable-xhdpi/ic_user_agreement_checked.pngapp/res/drawable-xhdpi/ic_user_agreement_unchecked.pngapp/res/drawable-xhdpi/icon_auth_notify_phone.png
app/res/drawable-xhdpi/icon_auth_notify_storage.png
app/res/drawable-xhdpi/icon_home_search.png
app/res/drawable-xhdpi/icon_home_special_novel.png
app/res/drawable-xhdpi/icon_login_account.pngapp/res/drawable-xhdpi/icon_login_code.pngapp/res/drawable-xhdpi/icon_login_password.pngapp/res/drawable-xhdpi/icon_mine_collect.png
app/res/drawable-xhdpi/icon_mine_download.png
app/res/drawable-xhdpi/icon_mine_watch_history.png
app/res/drawable-xhdpi/icon_mine_youth.pngapp/res/drawable-xhdpi/icon_nav_category.png
app/res/drawable-xhdpi/icon_nav_category_highlight.png
app/res/drawable-xhdpi/icon_nav_discover.png
app/res/drawable-xhdpi/icon_nav_discover_highlight.png
app/res/drawable-xhdpi/icon_nav_draw_video.png
app/res/drawable-xhdpi/icon_nav_draw_video_highlight.png
app/res/drawable-xhdpi/icon_nav_home.png
app/res/drawable-xhdpi/icon_nav_home_highlight.png
app/res/drawable-xhdpi/icon_nav_mine.png
app/res/drawable-xhdpi/icon_nav_mine_highlight.png
app/res/drawable-xxhdpi/arrow_right.pngapp/res/drawable/selector_nav_category.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/icon_nav_category_highlight" android:state_checked="true"></item> <item android:drawable="@drawable/icon_nav_category" android:state_checked="false"></item> </selector> app/res/drawable/selector_nav_discover.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/icon_nav_discover_highlight" android:state_checked="true"></item> <item android:drawable="@drawable/icon_nav_discover" android:state_checked="false"></item> </selector> app/res/drawable/selector_nav_draw_video.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/icon_nav_draw_video_highlight" android:state_checked="true"></item> <item android:drawable="@drawable/icon_nav_draw_video" android:state_checked="false"></item> </selector> app/res/drawable/selector_nav_home.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/icon_nav_home_highlight" android:state_checked="true"></item> <item android:drawable="@drawable/icon_nav_home" android:state_checked="false"></item> </selector> app/res/drawable/selector_nav_mine.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/icon_nav_mine_highlight" android:state_checked="true"></item> <item android:drawable="@drawable/icon_nav_mine" android:state_checked="false"></item> </selector> app/res/drawable/shape_default_cover.xml
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/black"></solid> <solid android:color="#FFFFE8F0"></solid> </shape> app/res/drawable/shape_login_btn.xml
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF" /> <corners android:radius="30dp" /> <solid android:color="@color/theme" /> <corners android:radius="8dp" /> </shape> app/res/drawable/shape_login_input_bg.xml
File was deleted app/res/drawable/shape_login_send_code_btn.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white" /> <corners android:radius="20dp" /> <solid android:color="@color/theme" /> <corners android:radius="8dp" /> </shape> app/res/drawable/shape_mine_desc_bg.xml
New file @@ -0,0 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:angle="90" android:endColor="#00ff4d88" android:startColor="#A0ff4d88" android:type="linear" android:useLevel="true" /> </shape> app/res/drawable/shape_mine_desc_bg_1.xml
New file @@ -0,0 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#ffff4d88" /> <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" android:topLeftRadius="15dp" android:topRightRadius="15dp" /> </shape> app/res/drawable/shape_mine_item_bg.xml
@@ -2,10 +2,9 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#33252121" /> <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" android:topLeftRadius="10dp" android:topRightRadius="10dp" /> <solid android:color="@color/white" /> <corners android:radius="12.5dp" /> <stroke android:width="1dp" android:color="#FFDDDDDD"></stroke> </shape> app/res/drawable/shape_mine_portrait_bg.xml
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#3B3B3B"></solid> <solid android:color="@color/gray"></solid> <corners android:radius="100dp"></corners> </shape> app/res/drawable/shape_movie_item_tag_bg.xml
New file @@ -0,0 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:angle="90" android:endColor="#00000000" android:startColor="#80000000" android:type="linear" android:useLevel="true" /> </shape> app/res/drawable/shape_search_bg.xml
@@ -3,6 +3,6 @@ <corners android:radius="20dp" /> <solid android:color="@color/gray1" /> <solid android:color="#FFEEEDED" /> </shape> app/res/drawable/shape_search_keyword_bg.xml
@@ -2,5 +2,5 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="40dp" /> <solid android:color="#3D3D3D" /> <solid android:color="#FFF7F7F7" /> </shape> app/res/drawable/shape_theme_corner_radius_8.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="8dp" /> <solid android:color="@color/theme" /> </shape> app/res/drawable/shape_video_detail_episode_resource.xml
@@ -2,8 +2,14 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#3C3C3C" /> <corners android:radius="5dp" /> <solid android:color="#ffffffff" /> <stroke android:width="1dp" android:color="#FFBBBBBB" /> <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" android:topLeftRadius="10dp" android:topRightRadius="10dp" /> </shape> app/res/drawable/shape_video_detail_episode_selected.xml
@@ -2,8 +2,8 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#0051F5" /> <corners android:radius="5dp" /> <solid android:color="@color/theme" /> <corners android:radius="10dp" /> </shape> app/res/drawable/shape_video_detail_episode_unselected.xml
@@ -1,8 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#666666" /> <corners android:radius="5dp" /> <solid android:color="@color/white" /> <corners android:radius="10dp" /> <stroke android:width="1px" android:color="#FFBBBBBB" /> </shape> app/res/drawable/shape_video_detail_follow_bg.xml
@@ -1,11 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#3b3b3b" /> <solid android:color="@color/white" /> <corners android:bottomLeftRadius="5dp" android:bottomRightRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp" /> <stroke android:width="1px" android:color="#FFBBBBBB" /> </shape> app/res/drawable/shape_video_detail_follow_btn.xml
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#0B78E3" /> <solid android:color="@color/theme" /> <corners android:radius="5dp" /> </shape> app/res/drawable/shape_video_detail_indicator.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ff0b78e3" /> <solid android:color="@color/theme" /> <corners android:topLeftRadius="2dp" android:topRightRadius="2dp" android:bottomLeftRadius="2dp" android:bottomRightRadius="2dp" /> </shape> app/res/drawable/shape_video_search_result_album_play.xml
@@ -2,5 +2,5 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="5dp" /> <solid android:color="#407CF3" /> <solid android:color="@color/theme" /> </shape> app/res/drawable/shape_white_corner_radius_10.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="10dp" /> <solid android:color="@color/white" /> </shape> app/res/drawable/shape_white_corner_radius_20.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="20dp" /> <solid android:color="@color/white" /> </shape> app/res/layout/activity_download.xml
@@ -7,7 +7,7 @@ <RelativeLayout android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/top_bar_color" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal"> @@ -33,6 +33,7 @@ android:layout_centerInParent="true" android:ellipsize="end" android:maxLength="10" android:textColor="@color/page_title_text_color" android:singleLine="true" /> <FrameLayout app/res/layout/activity_follow.xml
@@ -2,14 +2,14 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <include layout="@layout/navigation_top_bar" /> app/res/layout/activity_forget_pwd.xml
@@ -2,27 +2,26 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/ic_login_bg" android:orientation="vertical"> <FrameLayout android:id="@+id/fl_nav" android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/transparent"> android:layout_height="48dp"> <TextView android:id="@+id/tv_back" @@ -44,7 +43,7 @@ android:paddingTop="6dp" android:paddingBottom="6dp" android:text="忘记密码" android:textColor="@color/white" android:textColor="@color/page_title_text_color" android:textSize="24sp" /> </FrameLayout> @@ -70,6 +69,7 @@ android:background="@drawable/ic_login_input_bg" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingTop="12dp" android:paddingBottom="4dp"> @@ -86,8 +86,16 @@ android:layout_marginLeft="18dp" android:digits="@string/rule_email" android:hint="请输入注册时邮箱" android:inputType="textEmailAddress" /> android:inputType="textEmailAddress" android:textColor="#333333" android:textColorHint="#FFCACACA" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="10dp" android:background="#FFDDDDDD"></View> <FrameLayout android:layout_width="match_parent" @@ -96,6 +104,7 @@ android:background="@drawable/ic_login_input_bg" android:gravity="end|bottom" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingTop="12dp" android:paddingBottom="4dp"> @@ -105,9 +114,9 @@ android:layout_gravity="bottom"> <ImageView android:layout_width="wrap_content" android:layout_height="18dp" android:src="@drawable/icon_login_password"></ImageView> android:layout_width="17dp" android:layout_height="wrap_content" android:src="@drawable/icon_login_code"></ImageView> <EditText android:id="@+id/et_verfication_code" @@ -119,8 +128,11 @@ android:layout_weight="1" android:digits="@string/rule_password" android:hint="请输入验证码" android:inputType="textPassword" /> android:inputType="textPassword" android:textColor="#333333" android:textColorHint="#FFCACACA" /> </LinearLayout> <TextView android:id="@+id/tv_obtain_verfication_code" @@ -133,9 +145,15 @@ android:paddingLeft="15dp" android:paddingRight="15dp" android:text="发送验证码" android:textColor="#181818" android:textColor="@color/white" android:textSize="12sp"></TextView> </FrameLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="10dp" android:background="#FFDDDDDD"></View> <LinearLayout @@ -145,6 +163,7 @@ android:background="@drawable/ic_login_input_bg" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingTop="12dp" android:paddingBottom="4dp"> @@ -161,8 +180,16 @@ android:layout_marginLeft="18dp" android:digits="@string/rule_password" android:hint="输入新密码" android:inputType="textPassword" /> android:inputType="textPassword" android:textColor="#333333" android:textColorHint="#FFCACACA" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="10dp" android:background="#FFDDDDDD"></View> <TextView android:id="@+id/tv_confirm" @@ -174,7 +201,7 @@ android:paddingLeft="14dp" android:paddingRight="14dp" android:text="确认" android:textColor="#181818" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> app/res/layout/activity_login.xml
@@ -2,14 +2,14 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#F1F1F1" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <FrameLayout android:layout_width="match_parent" @@ -20,7 +20,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/ic_login_bg"></ImageView> android:src="@drawable/ic_login_bg" android:visibility="gone"></ImageView> <LinearLayout @@ -56,7 +57,7 @@ android:paddingTop="6dp" android:paddingBottom="6dp" android:text="登录" android:textColor="@color/white" android:textColor="@color/page_title_text_color" android:textSize="24sp" /> </FrameLayout> @@ -87,12 +88,13 @@ android:background="@drawable/ic_login_input_bg" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingTop="12dp" android:paddingBottom="4dp"> <ImageView android:layout_width="wrap_content" android:layout_height="18dp" android:layout_width="17dp" android:layout_height="wrap_content" android:src="@drawable/icon_login_account"></ImageView> <EditText @@ -103,9 +105,17 @@ android:layout_marginLeft="18dp" android:background="@null" android:digits="@string/rule_email" android:hint="邮箱" android:inputType="textEmailAddress" /> android:hint="请输入您的邮箱" android:inputType="textEmailAddress" android:textColor="#333333" android:textColorHint="#FFCACACA" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="10dp" android:background="#FFDDDDDD"></View> <LinearLayout android:layout_width="match_parent" @@ -114,12 +124,13 @@ android:background="@drawable/ic_login_input_bg" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingTop="12dp" android:paddingBottom="4dp"> <ImageView android:layout_width="wrap_content" android:layout_height="18dp" android:layout_width="17dp" android:layout_height="wrap_content" android:src="@drawable/icon_login_password"></ImageView> <EditText @@ -130,9 +141,17 @@ android:layout_marginLeft="18dp" android:background="@null" android:digits="@string/rule_password" android:hint="密码" android:inputType="textPassword" /> android:hint="请输入密码" android:inputType="textPassword" android:textColor="#333333" android:textColorHint="#FFCACACA" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="10dp" android:background="#FFDDDDDD"></View> <FrameLayout android:layout_width="match_parent" @@ -177,7 +196,7 @@ android:paddingLeft="14dp" android:paddingRight="14dp" android:text="登录" android:textColor="#181818" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> @@ -210,7 +229,7 @@ android:layout_height="wrap_content" android:layout_marginLeft="6.5dp" android:text="勾选表示同意" android:textColor="#FFFFFF" android:textColor="#FF999999" android:textSize="11sp" /> <TextView @@ -225,7 +244,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="、" android:textColor="#FFFFFF" android:textColor="#FF999999" android:textSize="11sp" /> <TextView app/res/layout/activity_main.xml
@@ -2,15 +2,15 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:visibility="visible" android:background="@color/top_bar_color" /> <!-- <View--> <!-- android:id="@+id/v_status_bar"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="0dp"--> <!-- android:visibility="visible"--> <!-- android:background="@color/top_bar_color" />--> <FrameLayout android:layout_width="match_parent" app/res/layout/activity_register.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> @@ -10,12 +10,11 @@ android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/ic_login_bg" android:orientation="vertical"> <FrameLayout @@ -43,7 +42,7 @@ android:paddingTop="6dp" android:paddingBottom="6dp" android:text="注册" android:textColor="@color/white" android:textColor="@color/page_title_text_color" android:textSize="20sp" /> </FrameLayout> @@ -68,11 +67,12 @@ android:gravity="center_vertical" android:orientation="horizontal" android:paddingTop="12dp" android:paddingLeft="5dp" android:paddingBottom="4dp"> <ImageView android:layout_width="wrap_content" android:layout_height="18dp" android:layout_width="17dp" android:layout_height="wrap_content" android:src="@drawable/icon_login_account"></ImageView> <EditText @@ -80,18 +80,25 @@ style="@style/loginInputStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="18dp" android:digits="@string/rule_email" android:hint="请输入邮箱" android:inputType="textEmailAddress" /> android:inputType="textEmailAddress" android:textColorHint="#FFCACACA" /> </LinearLayout> <View android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="1dp" android:background="#FFDDDDDD"></View> <FrameLayout android:paddingLeft="5dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/ic_login_input_bg" android:gravity="end|bottom" android:orientation="horizontal" android:paddingTop="12dp" @@ -103,9 +110,9 @@ android:layout_gravity="bottom"> <ImageView android:layout_width="wrap_content" android:layout_height="18dp" android:src="@drawable/icon_login_password"></ImageView> android:layout_width="17dp" android:layout_height="wrap_content" android:src="@drawable/icon_login_code"></ImageView> <EditText android:id="@+id/et_verfication_code" @@ -117,7 +124,8 @@ android:layout_weight="1" android:digits="@string/rule_password" android:hint="请输入验证码" android:inputType="textPassword" /> android:inputType="textPassword" android:textColorHint="#FFCACACA" /> </LinearLayout> <TextView @@ -131,12 +139,19 @@ android:paddingLeft="15dp" android:paddingRight="15dp" android:text="发送验证码" android:textColor="#181818" android:textColor="@color/white" android:textSize="12sp"></TextView> </FrameLayout> <View android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="1dp" android:background="#FFDDDDDD"></View> <LinearLayout android:paddingLeft="5dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" @@ -147,8 +162,8 @@ android:paddingBottom="4dp"> <ImageView android:layout_width="wrap_content" android:layout_height="18dp" android:layout_width="17dp" android:layout_height="wrap_content" android:src="@drawable/icon_login_password"></ImageView> <EditText @@ -159,8 +174,17 @@ android:layout_marginLeft="18dp" android:background="@null" android:digits="@string/rule_password" android:hint="请设置密码" /> android:hint="请设置密码" android:textColorHint="#FFCACACA" android:textColor="#333333" /> </LinearLayout> <View android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="1dp" android:background="#FFDDDDDD"></View> <LinearLayout android:layout_width="match_parent" @@ -172,13 +196,13 @@ <TextView android:id="@+id/tv_confirm" android:layout_width="match_parent" android:layout_height="37dp" android:layout_height="40dp" android:background="@drawable/shape_login_btn" android:gravity="center" android:paddingLeft="14dp" android:paddingRight="14dp" android:text="提交注册" android:textColor="#181818" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> </LinearLayout> @@ -205,7 +229,7 @@ android:layout_height="wrap_content" android:layout_marginLeft="6.5dp" android:text="注册并同意" android:textColor="#FFFFFF" android:textColor="#FF999999" android:textSize="11sp" /> <TextView @@ -220,7 +244,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="、" android:textColor="#FFFFFF" android:textColor="#FF999999" android:textSize="11sp" /> <TextView app/res/layout/activity_splash.xml
@@ -3,14 +3,14 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#010005" android:background="@color/white" android:orientation="vertical"> <!-- <View--> <!-- android:id="@+id/v_status_bar"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="15dp"--> <!-- android:background="@color/top_bar_color" />--> <!-- <View--> <!-- android:id="@+id/v_status_bar"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="15dp"--> <!-- android:background="@color/top_bar_color" />--> <LinearLayout android:layout_width="match_parent" @@ -25,15 +25,31 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> android:layout_height="wrap_content" android:layout_gravity="center"> <View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1"></View> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/ic_splash_bg"></ImageView> <com.hanju.lib.library.widget.RatioLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" app:ratio="1.1738"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/ic_splash_bg"></ImageView> </com.hanju.lib.library.widget.RatioLayout> <View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1"></View> </LinearLayout> @@ -92,11 +108,11 @@ <LinearLayout android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:padding="15dp"> android:padding="15dp" android:visibility="gone"> <ImageView android:id="@+id/iv_logo" app/res/layout/activity_video_player.xml
@@ -2,14 +2,14 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <LinearLayout android:layout_width="match_parent" app/res/layout/activity_watch_history.xml
@@ -13,7 +13,7 @@ <RelativeLayout android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/top_bar_color" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal"> @@ -39,6 +39,7 @@ android:layout_centerInParent="true" android:ellipsize="end" android:maxLength="10" android:textColor="@color/page_title_text_color" android:singleLine="true" /> <FrameLayout @@ -63,7 +64,7 @@ </RelativeLayout> <FrameLayout android:background="@color/theme" android:background="@color/white" android:id="@+id/fl_watch_history" android:layout_width="match_parent" android:layout_height="0dp" app/res/layout/browser_activity.xml
@@ -9,7 +9,7 @@ android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <include layout="@layout/navigation_top_bar" /> @@ -18,7 +18,7 @@ style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="1px" android:background="#0B78E3" /> android:background="@color/theme" /> <com.hanju.video.app.util.x5web.X5WebView app/res/layout/browser_fengxing_activity.xml
@@ -3,14 +3,14 @@ android:id="@+id/ll_all" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" android:background="@color/white" android:visibility="visible" /> app/res/layout/browser_pptv_activity.xml
@@ -2,7 +2,7 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <LinearLayout app/res/layout/category_fragment.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <TextView app/res/layout/category_unique.xml
@@ -3,13 +3,18 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/theme"> android:background="@color/white"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> <TextView android:layout_width="match_parent" android:layout_height="48dp" android:background="#000000" android:background="@color/theme" android:gravity="center" android:text="发现" android:textColor="#ffffffff" app/res/layout/dialog_auth_notify.xml
New file @@ -0,0 +1,120 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_user_protocol_dialog_bg" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="17dp" android:layout_marginBottom="20dp" android:src="@drawable/ic_auth_notify_top"></ImageView> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical" android:padding="20dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:gravity="center_vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="7dp" android:src="@drawable/icon_auth_notify_phone"> </ImageView> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机" android:textColor="#ff333333" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="校验手机识别码,防止账号被盗" android:textColor="#ff999999" android:textSize="11sp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:gravity="center_vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="7dp" android:src="@drawable/icon_auth_notify_storage"></ImageView> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="存储" android:textColor="#ff333333" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="存储图片和视频,降低网络消耗" android:textColor="#ff999999" android:textSize="11sp" /> </LinearLayout> </LinearLayout> <TextView android:id="@+id/tv_positive" android:layout_width="match_parent" android:layout_height="38dp" android:layout_gravity="center" android:layout_marginTop="40dp" android:layout_marginBottom="10dp" android:layout_weight="1" android:background="@drawable/shape_theme_corner_radius_8" android:gravity="center" android:text="立即开启" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> </LinearLayout> app/res/layout/dialog_user_protocol.xml
@@ -28,6 +28,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:autoLink="all" android:textColor="#FF333333" android:background="@null" android:lineSpacingExtra="8sp" android:textSize="14sp"></TextView> app/res/layout/download_group_activity.xml
@@ -38,6 +38,7 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:ellipsize="end" android:textColor="@color/page_title_text_color" android:maxLength="10" android:singleLine="true" /> app/res/layout/fragment_cate_recommend.xml
@@ -3,7 +3,7 @@ android:id="@+id/rl_cate_recommend" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme"> android:background="@color/white"> <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/rl_cate_recommed" app/res/layout/fragment_episode.xml
@@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#323232"> android:background="#FF999999"> <LinearLayout android:layout_width="match_parent" @@ -14,14 +14,14 @@ android:id="@+id/fl_native_ad_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:padding="8dp"></FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:orientation="vertical" android:padding="8dp"> @@ -33,7 +33,7 @@ android:ellipsize="end" android:maxLines="2" android:text="未知的餐桌" android:textColor="#FFFFFF" android:textColor="#FF5C5C5C" android:textSize="28sp"></TextView> @@ -45,7 +45,7 @@ android:ellipsize="end" android:maxLines="5" android:text="未知的餐桌第11期上 岳云鹏原创曲听哭郁可唯 沙溢自信对标李易峰" android:textColor="#FFFFFF" android:textColor="#FF5C5C5C" android:textSize="16sp"></TextView> @@ -74,7 +74,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="8.8" android:textColor="#fffff339" android:textColor="#FFFB9F00" android:textSize="21sp" /> <LinearLayout @@ -93,8 +93,8 @@ android:numStars="5" android:rating="2.5" android:stepSize="0.5" app:bgColor="#FFFFFF" app:starColor="#FFF33A" app:bgColor="#FFB8AFB5" app:starColor="#FFFB9F00" app:starSpacing="0dp"></per.wsj.library.AndRatingBar> </LinearLayout> @@ -109,7 +109,8 @@ <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme"> android:padding="10dp" android:background="@color/white"> <include layout="@layout/item_follow2" /> </FrameLayout> @@ -120,7 +121,7 @@ android:layout_height="wrap_content" android:layout_marginTop="1px" android:layout_marginBottom="1px" android:background="@color/theme" android:background="@color/white" android:paddingLeft="30dp" android:paddingTop="15dp" android:paddingRight="30dp"> @@ -206,7 +207,7 @@ <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:descendantFocusability="blocksDescendants"> <androidx.recyclerview.widget.RecyclerView @@ -246,7 +247,7 @@ <View android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/theme"></View> android:background="@color/white"></View> </LinearLayout> </ScrollView> app/res/layout/fragment_feed_videos.xml
New file @@ -0,0 +1,21 @@ <?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"> <com.hanju.video.app.ui.widget.MyRefreshLayout android:id="@+id/srl_feed" android:layout_width="match_parent" android:paddingTop="10dp" android:layout_height="match_parent"> <FrameLayout android:id="@+id/fl_container" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </com.hanju.video.app.ui.widget.MyRefreshLayout> </FrameLayout> app/res/layout/fragment_guess_like.xml
@@ -2,7 +2,7 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme"> android:background="@color/white"> <com.hanju.lib.library.util.RefreshLayout android:id="@+id/rl_guess_like" app/res/layout/fragment_recommend_category.xml
@@ -1,172 +1,78 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/srl_recommend" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:id="@+id/ll_top" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/top_bar_color" android:gravity="center_vertical"> <LinearLayout android:id="@+id/ll_activity_main_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:layout_weight="2" android:background="@drawable/shape_search_bg" android:orientation="horizontal"> <ImageView android:id="@+id/iv_activity_main_search" android:layout_width="18dp" android:layout_height="18dp" android:layout_gravity="left|center_vertical" android:layout_marginLeft="15dp" android:layout_marginTop="8dp" android:layout_marginBottom="8dp" android:scaleType="fitCenter" android:src="@drawable/ic_activity_main_search"></ImageView> <TextView android:id="@+id/tv_activity_main_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="left|center_vertical" android:layout_marginLeft="5dp" android:gravity="center_vertical" android:textColor="#BDBDBD" android:textSize="13sp"></TextView> </LinearLayout> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:layout_weight="1" android:visibility="gone"> <ImageView android:id="@+id/iv_sliding_hint" android:layout_width="9dp" android:layout_height="16dp" android:layout_gravity="center_vertical" android:src="@drawable/ic_sliding_hint" android:visibility="invisible" /> <LinearLayout android:id="@+id/ll_activity_login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="20dp" android:visibility="gone"> <ImageView android:id="@+id/iv_activity_protrait" android:layout_width="30dp" android:layout_height="30dp" android:scaleType="centerInside" android:src="@drawable/img_head_portrait" /> <TextView android:id="@+id/tv_activity_main_login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:drawablePadding="3dp" android:gravity="center_vertical" android:paddingLeft="8dp" android:paddingRight="8dp" android:singleLine="true" android:text="@string/activity_main_login" android:textAppearance="?android:attr/textAppearance" android:textColor="@color/white" android:visibility="gone" /> </LinearLayout> </FrameLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="48dp" android:layout_marginLeft="10dp" android:background="@color/top_bar_color" android:orientation="horizontal" android:padding="8dp"> <FrameLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> <ImageView android:id="@+id/iv_recommend_watch_history" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center" android:padding="4dp" android:scaleType="fitCenter" android:src="@drawable/ic_recommend_watch_history"></ImageView> </FrameLayout> <FrameLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="8dp" android:layout_weight="1"> <ImageView android:id="@+id/iv_recommend_download" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center" android:padding="4dp" android:scaleType="fitCenter" android:src="@drawable/ic_recommend_download"></ImageView> </FrameLayout> <FrameLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:visibility="gone"> <ImageView android:id="@+id/iv_activity_main_download" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center" android:layout_margin="5dp" android:layout_toLeftOf="@id/iv_activity_main_search" android:scaleType="fitCenter" android:src="@drawable/ic_activity_main_download" android:visibility="gone"></ImageView> </FrameLayout> </LinearLayout> </LinearLayout> <FrameLayout android:id="@+id/fl_indicator" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="-6dp" android:background="#000000"></FrameLayout> <androidx.viewpager.widget.ViewPager android:id="@+id/pager_recomend_category" <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> android:background="@color/top_bar_color" android:visibility="visible" /> <androidx.coordinatorlayout.widget.CoordinatorLayout android:id="@+id/cl_recommend" android:layout_width="match_parent" android:layout_height="match_parent"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/abl_recommend" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout app:layout_scrollFlags="scroll|enterAlways" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme"> <View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1"> </View> <net.lucode.hackware.magicindicator.MagicIndicator android:id="@+id/magic_indicator" android:layout_width="0dp" android:layout_height="32sp" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:layout_weight="3" android:gravity="center" /> <View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1"> </View> </LinearLayout> </com.google.android.material.appbar.AppBarLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <androidx.viewpager.widget.ViewPager android:id="@+id/pager_recomend_category" android:layout_width="match_parent" android:layout_height="wrap_content" /> </FrameLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout> </LinearLayout> app/res/layout/item_category_unique_lv.xml
@@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#3C3C3C" android:background="@color/white" android:orientation="vertical"> @@ -45,7 +45,6 @@ android:id="@+id/item_unique_tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:ellipsize="end" android:maxLines="2" android:paddingLeft="10dp" @@ -53,7 +52,7 @@ android:paddingRight="10dp" android:paddingBottom="6dp" android:text="" android:textColor="@color/white" android:textColor="#FF5F5F5F" android:textSize="20sp" /> <LinearLayout @@ -83,7 +82,7 @@ android:ellipsize="end" android:lines="1" android:text="UB8 Music News" android:textColor="#ffffffff" android:textColor="#FF5F5F5F" android:textSize="15sp" /> <TextView @@ -93,7 +92,7 @@ android:ellipsize="end" android:lines="1" android:text="11:03 - Thursday, August 27" android:textColor="#ff8f8e94" android:textColor="#FF8F8E94" android:textSize="12sp" /> </LinearLayout> app/res/layout/item_follow2.xml
@@ -39,7 +39,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="刘涛" android:textColor="#EFEFEF" android:textColor="#FF666666" android:textSize="12sp" /> <TextView @@ -49,7 +49,7 @@ android:layout_height="wrap_content" android:layout_marginTop="8.5dp" android:text="更新 4天前" android:textColor="#ffefefef" android:textColor="#FF999999" android:textSize="10sp" /> </LinearLayout> app/res/layout/item_guess_like.xml
@@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res/com.hanju.video" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <com.hanju.lib.library.widget.RatioLayout app/res/layout/item_home_special.xml
@@ -17,8 +17,8 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:gravity="center" android:textColor="#818181" android:textSize="15sp" /> android:textColor="#FF3B3B3B" android:textSize="12sp" /> </LinearLayout> app/res/layout/item_movie.xml
@@ -11,54 +11,65 @@ android:layout_height="wrap_content" android:orientation="vertical"> <com.hanju.lib.library.widget.RatioLayout android:id="@+id/rl_ratio" android:layout_width="match_parent" android:layout_height="wrap_content" app:ratio="0.625"> <FrameLayout <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_height="match_parent" app:cardCornerRadius="4dp"> <ImageView android:id="@+id/iv_movie_cover" <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" /> android:layout_height="match_parent"> <ImageView android:id="@+id/iv_spread" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|right" android:src="@drawable/spread" android:visibility="gone" /> <ImageView android:id="@+id/iv_movie_cover" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" /> <TextView android:id="@+id/tv_movie_rating" style="@style/TextWhiteSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="#80000000" android:ellipsize="end" android:gravity="end" android:paddingLeft="8dp" android:paddingRight="8dp" android:textSize="10sp" android:singleLine="true" android:textColor="@color/videoTag" /> <ImageView android:id="@+id/iv_spread" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|right" android:src="@drawable/spread" android:visibility="gone" /> <ImageView android:id="@+id/iv_ad_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:src="@drawable/tsa_ad_logo" android:visibility="gone" /> </FrameLayout> <TextView android:id="@+id/tv_movie_rating" style="@style/TextWhiteSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@drawable/shape_movie_item_tag_bg" android:ellipsize="end" android:gravity="end" android:paddingLeft="8dp" android:paddingRight="8dp" android:paddingTop="2dp" android:paddingBottom="2dp" android:singleLine="true" android:textColor="@color/white" android:textSize="12sp" /> <ImageView android:id="@+id/iv_ad_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:src="@drawable/tsa_ad_logo" android:visibility="gone" /> </FrameLayout> </androidx.cardview.widget.CardView> </com.hanju.lib.library.widget.RatioLayout> <TextView android:id="@+id/tv_movie_title" @@ -67,9 +78,9 @@ android:layout_height="wrap_content" android:ellipsize="end" android:lines="2" android:textSize="12sp" android:paddingRight="8dp" android:textColor="@color/videoTitle" /> android:textColor="#FF464646" android:textSize="12sp" /> <LinearLayout android:layout_width="match_parent" app/res/layout/item_recommend_home_dy_videos.xml
New file @@ -0,0 +1,31 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:orientation="vertical"> <TextView android:id="@+id/tv_title" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_gravity="left|center_vertical" android:layout_marginLeft="10dp" android:layout_marginTop="5dp" android:paddingBottom="2dp" android:text="今日热点" android:textColor="#000000" android:textSize="15sp" /> <FrameLayout android:layout_marginLeft="-7dp" android:id="@+id/fl_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="6dp"></FrameLayout> </LinearLayout> app/res/layout/item_recommend_home_type.xml
@@ -2,39 +2,35 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:orientation="vertical" android:paddingBottom="6dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <FrameLayout android:id="@+id/rl_title_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp"> <View android:layout_width="3dp" android:layout_height="18dp" android:layout_gravity="left|center_vertical" android:background="@drawable/shape_recommend_home_type_tag"></View> android:paddingLeft="10dp" android:paddingRight="10dp"> <TextView android:id="@+id/tv_category_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_gravity="left|center_vertical" android:layout_marginLeft="15dp" android:layout_marginLeft="0dp" android:paddingBottom="2dp" android:text="什么鬼" android:textColor="@color/white" android:textSize="18sp" /> android:textColor="#000000" android:textSize="15sp" /> <TextView android:id="@+id/tv_more" app/res/layout/item_recommend_home_type_ad.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <LinearLayout app/res/layout/item_resource.xml
@@ -2,7 +2,7 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="30dp" android:background="#585858"> android:background="#FF999999"> <!-- 585858 --> <LinearLayout app/res/layout/item_search_result_sugguest.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#656565" android:background="#FFF7F7F7" android:orientation="vertical" android:paddingLeft="17dp" android:paddingRight="17dp"> @@ -15,14 +15,14 @@ android:layout_marginTop="12dp" android:layout_marginBottom="12dp" android:text="那奶奶在哪里" android:textColor="#ffdddddd" android:textColor="#FF3D3D3D" android:textSize="12sp" /> <View android:id="@+id/view_cutline" android:layout_width="match_parent" android:layout_height="1dp" android:background="#505050"></View> android:background="#FFD5D5D5"></View> </LinearLayout> app/res/layout/item_star_work.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:orientation="horizontal"> <ImageView app/res/layout/item_video_search_result_album.xml
@@ -44,8 +44,8 @@ android:ellipsize="end" android:maxLines="2" android:text="以家人之名" android:textColor="@color/white" android:textSize="15sp" /> android:textColor="#FF232323" android:textSize="16sp" /> <TextView android:id="@+id/tv_type" app/res/layout/item_video_search_result_video.xml
@@ -39,7 +39,7 @@ android:ellipsize="end" android:maxLines="3" android:text="琅琊榜" android:textColor="#ffffffff" android:textColor="#FF232323" android:textSize="15sp" /> @@ -50,7 +50,7 @@ android:layout_height="wrap_content" android:layout_marginTop="2dp" android:text="琅琊榜" android:textColor="#DCDCDC" android:textColor="#FFAEAEAE" android:textSize="14sp" /> app/res/layout/mine_fragment.xml
@@ -4,13 +4,20 @@ android:id="@+id/ll_mine_info" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> <TextView android:layout_width="match_parent" android:layout_height="48dp" android:background="#000000" android:gravity="center_vertical|left" android:background="@color/theme" android:gravity="center" android:paddingLeft="25dp" android:text="我的" android:textColor="#ffffffff" @@ -24,8 +31,7 @@ <ScrollView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="@color/theme"> android:layout_weight="1"> <LinearLayout android:layout_width="match_parent" @@ -36,7 +42,6 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000000" android:orientation="vertical" android:paddingLeft="25dp" android:paddingRight="25dp"> @@ -45,7 +50,6 @@ android:id="@+id/mine_rl_head" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" android:orientation="vertical" android:paddingTop="40dp" android:paddingBottom="20dp"> @@ -63,8 +67,8 @@ <ImageView android:id="@+id/mine_ci_head" android:layout_width="71dp" android:layout_height="71dp" android:layout_width="75dp" android:layout_height="75dp" android:layout_gravity="center" android:src="@drawable/img_head_portrait" /> @@ -83,7 +87,7 @@ android:layout_height="wrap_content" android:paddingTop="12dp" android:text="未登录" android:textColor="@color/white" android:textColor="@color/theme" android:textSize="22sp" /> @@ -104,111 +108,127 @@ </LinearLayout> </LinearLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_mine_desc_bg" android:paddingTop="22dp"> <TextView android:id="@+id/tv_desc" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="64dp" android:layout_marginLeft="12.5dp" android:layout_marginTop="10dp" android:text="你还没有编辑你的个人简介,所以空空如也~" android:textColor="#ff6b6b6b" android:layout_marginRight="12.5dp" android:background="@drawable/shape_mine_desc_bg_1" android:gravity="center_vertical|left" android:paddingLeft="23dp" android:paddingBottom="5dp" android:textSize="15sp" /> android:text="个性签名:你还没有编辑你的个人简介,所以空空如也~" android:textColor="@color/white" android:textSize="12sp" /> </FrameLayout> <LinearLayout android:id="@+id/ll_video_mine" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="24dp" android:layout_marginBottom="10dp" android:orientation="horizontal"> <LinearLayout android:id="@+id/ll_video_mine" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="60dp" android:layout_marginBottom="10dp" android:orientation="horizontal"> android:id="@+id/ll_mine_favourite" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" android:padding="8dp"> <LinearLayout android:id="@+id/ll_mine_favourite" android:layout_width="0dp" <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" android:padding="8dp"> android:text="@string/my_favourites" android:textColor="#FF9D9D9D" android:textSize="21sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_favourites" android:textColor="@color/white" android:textSize="21sp" /> <TextView android:id="@+id/tv_mine_favourite" style="@style/TextBlackMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="9dp" android:drawablePadding="15dp" android:text="0" android:textColor="#DCDCDC" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_follow" android:layout_width="0dp" <TextView android:id="@+id/tv_mine_favourite" style="@style/TextBlackMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" android:padding="8dp"> android:layout_marginTop="9dp" android:drawablePadding="15dp" android:text="0" android:textColor="#DCDCDC" android:textSize="16sp" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="追剧" android:textColor="@color/white" android:textSize="21sp" /> <LinearLayout android:id="@+id/ll_mine_follow" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" android:padding="8dp"> <TextView android:id="@+id/tv_mine_follow" style="@style/TextBlackMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="9dp" android:drawablePadding="15dp" android:text="0" android:textColor="#DCDCDC" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_save" android:layout_width="0dp" <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" android:padding="8dp"> android:text="追剧" android:textColor="#FF9D9D9D" android:textSize="21sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="缓存" android:textColor="@color/white" android:textSize="21sp" /> <TextView android:id="@+id/tv_mine_follow" style="@style/TextBlackMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="9dp" android:drawablePadding="15dp" android:text="0" android:textColor="#DCDCDC" android:textSize="16sp" /> </LinearLayout> <TextView android:id="@+id/tv_mine_save" style="@style/TextBlackMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="9dp" android:drawablePadding="15dp" android:text="0" android:textColor="#DCDCDC" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_save" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" android:padding="8dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="缓存" android:textColor="#9D9D9D" android:textSize="21sp" /> <TextView android:id="@+id/tv_mine_save" style="@style/TextBlackMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="9dp" android:drawablePadding="15dp" android:text="0" android:textColor="#DCDCDC" android:textSize="16sp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" @@ -228,7 +248,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="历史记录" android:textColor="@color/white" android:textColor="#FF9D9D9D" android:textSize="15sp" /> <TextView @@ -239,7 +259,7 @@ android:drawableRight="@drawable/arrow_right" android:drawablePadding="5dp" android:text="全部" android:textColor="@color/white" android:textColor="#FF9D9D9D" android:textSize="14sp" /> </FrameLayout> @@ -251,120 +271,125 @@ <LinearLayout android:id="@+id/ll_youth" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="12dp" android:background="@drawable/shape_mine_item_bg" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/icon_mine_youth"></ImageView> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/ic_mine_item_array" android:paddingRight="15dp" android:text="青少年模式" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_advice" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="12dp" android:background="@drawable/shape_mine_item_bg" android:gravity="center_vertical" android:orientation="horizontal"> android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="vertical"> <LinearLayout android:id="@+id/ll_youth" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="12dp" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/ic_mine_advice"></ImageView> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/icon_mine_youth"></ImageView> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/ic_mine_item_array" android:paddingRight="15dp" android:text="反馈吐槽" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/arrow_right" android:paddingRight="15dp" android:text="青少年模式" android:textColor="#FFAAAAAA" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_about" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="12dp" android:background="@drawable/shape_mine_item_bg" android:gravity="center_vertical" android:orientation="horizontal"> <LinearLayout android:id="@+id/ll_mine_advice" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="12dp" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/ic_mine_about"></ImageView> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/ic_mine_advice"></ImageView> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/ic_mine_item_array" android:paddingRight="15dp" android:text="关于我们" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/arrow_right" android:paddingRight="15dp" android:text="反馈吐槽" android:textColor="#FFAAAAAA" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_about" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="12dp" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/ic_mine_about"></ImageView> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/arrow_right" android:paddingRight="15dp" android:text="关于我们" android:textColor="#FFAAAAAA" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_setting" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginBottom="12dp" android:layout_marginTop="12dp" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/ic_mine_settings"></ImageView> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/arrow_right" android:paddingRight="15dp" android:text="设置" android:textColor="#FFAAAAAA" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_mine_setting" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="12dp" android:background="@drawable/shape_mine_item_bg" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="20dp" android:layout_centerHorizontal="true" android:layout_marginLeft="25dp" android:src="@drawable/ic_mine_settings"></ImageView> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_weight="1" android:drawableRight="@drawable/ic_mine_item_array" android:paddingRight="15dp" android:text="设置" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> app/res/layout/mvideo_activity.xml
@@ -14,7 +14,7 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/top_bar_color" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal"> @@ -32,6 +32,7 @@ android:drawableLeft="@drawable/ic_back_two" android:drawablePadding="5dp" android:gravity="center" android:textColor="@color/page_title_text_color" android:layout_gravity="center_vertical" android:padding="8dp" /> </FrameLayout> app/res/layout/myfavourites_activity.xml
@@ -2,19 +2,19 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/top_bar_color" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal"> @@ -41,7 +41,8 @@ android:layout_centerInParent="true" android:ellipsize="end" android:maxLength="10" android:singleLine="true" /> android:singleLine="true" android:textColor="@color/page_title_text_color" /> <FrameLayout android:layout_width="wrap_content" @@ -97,7 +98,7 @@ android:id="@+id/favourite_empty" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:visibility="visible"> <LinearLayout app/res/layout/navigation_bottom_bar.xml
@@ -1,72 +1,60 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp" android:layout_height="wrap_content" android:background="#FFFFFF" android:orientation="vertical"> <View android:layout_width="match_parent" android:layout_height="1px" android:background="#616161" /> android:background="#FFE9E9E9" /> <RadioGroup android:id="@+id/rg_nav" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:paddingTop="8dp" android:gravity="center_vertical" android:paddingBottom="8dp"> android:orientation="horizontal" android:paddingTop="9dp" android:paddingBottom="9dp"> <RadioButton android:textSize="0dp" android:id="@+id/rb_nav_recommend" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector_recommend" android:gravity="center" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/selector_bottom_bar_text" /> style="@style/homeNavStyle" android:drawableTop="@drawable/selector_nav_home" android:text="首页" /> <RadioButton android:textSize="0dp" android:id="@+id/rb_nav_discover" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector_discover" android:gravity="center" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/selector_bottom_bar_text" /> android:id="@+id/rb_nav_draw_video" style="@style/homeNavStyle" android:drawableTop="@drawable/selector_nav_draw_video" android:text="热刷" /> <RadioButton android:textSize="0dp" android:id="@+id/rb_nav_feed_videos" style="@style/homeNavStyle" android:drawableTop="@drawable/selector_nav_category" android:text="爱看" /> <RadioButton android:id="@+id/rb_nav_category" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector_category" android:gravity="center" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/selector_bottom_bar_text" /> style="@style/homeNavStyle" android:drawableTop="@drawable/selector_nav_category" android:text="分类" /> <RadioButton android:id="@+id/rb_nav_discover" style="@style/homeNavStyle" android:drawableTop="@drawable/selector_nav_discover" android:text="发现" /> <RadioButton android:id="@+id/rb_nav_mine" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:textSize="0dp" android:drawableTop="@drawable/v1_selector_mine" android:gravity="center" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/selector_bottom_bar_text" /> style="@style/homeNavStyle" android:drawableTop="@drawable/selector_nav_mine" android:text="我的" /> </RadioGroup> </LinearLayout> app/res/layout/navigation_top_bar.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/top_bar_color" android:background="@color/white" android:orientation="vertical"> <RelativeLayout @@ -48,6 +48,7 @@ android:ellipsize="end" android:maxLength="6" android:singleLine="true" android:textColor="@color/page_title_text_color" android:textSize="@dimen/text_size_title" /> <TextView app/res/layout/navigation_top_bar_goods.xml
@@ -45,6 +45,7 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:ellipsize="end" android:textColor="@color/page_title_text_color" android:maxLength="6" android:singleLine="true" /> app/res/layout/offine_cache_fragment2.xml
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/theme" android:background="@color/white" android:layout_height="match_parent"> <LinearLayout @@ -21,7 +21,7 @@ android:id="@+id/fl_empty" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:visibility="visible"> <LinearLayout app/res/layout/recommend_fragment.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <include layout="@layout/no_network" /> @@ -18,6 +18,34 @@ android:gravity="center" android:orientation="vertical"></LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:paddingLeft="12dp" android:paddingTop="5dp" android:paddingRight="12dp" android:paddingBottom="12dp"> <TextView android:id="@+id/tv_search" android:layout_width="match_parent" android:layout_height="31dp" android:background="@drawable/shape_white_corner_radius_20" android:drawableLeft="@drawable/icon_home_search" android:drawablePadding="11dp" android:ellipsize="end" android:gravity="center_vertical|left" android:lines="1" android:paddingLeft="11dp" android:text="那年花开月正圆" android:textColor="#FF787878" android:textSize="14sp"></TextView> </LinearLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" @@ -25,6 +53,7 @@ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/rl_recommend" android:descendantFocusability="blocksDescendants" android:layout_width="match_parent" android:layout_height="match_parent"> app/res/layout/search_actvity.xml
@@ -2,14 +2,14 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/top_bar_color" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <LinearLayout android:layout_width="match_parent" @@ -18,7 +18,7 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:layout_height="50dp" android:gravity="center_vertical" android:orientation="horizontal" android:padding="8dp"> @@ -33,11 +33,10 @@ <ImageView android:id="@+id/iv_activity_main_search" android:layout_width="30dp" android:layout_height="30dp" android:layout_width="16dp" android:layout_height="17dp" android:layout_gravity="left|center_vertical" android:layout_marginLeft="11dp" android:padding="4dp" android:layout_marginLeft="14dp" android:scaleType="fitCenter" android:src="@drawable/ic_activity_main_search"></ImageView> @@ -50,11 +49,12 @@ android:background="@null" android:completionThreshold="1" android:hint="请输入搜索内容" android:textColorHint="#FF787878" android:imeOptions="actionSearch" android:inputType="text" android:padding="5dp" android:textAppearance="?android:attr/textAppearance" android:textColor="@color/white" android:textColor="#333333" android:textCursorDrawable="@null" android:textSize="12sp" /> @@ -68,7 +68,7 @@ android:paddingLeft="17dp" android:paddingRight="18dp" android:text="取消" android:textColor="#ffffffff" android:textColor="@color/theme" android:textSize="12sp"></TextView> </LinearLayout> @@ -98,7 +98,7 @@ android:layout_height="wrap_content" android:padding="8dp" android:text="@string/hot_search" android:textColor="#DDDDDD" /> android:textColor="#FFA6A6A6" /> <com.hanju.lib.library.widget.MyGridView android:id="@+id/gv_hot_search" @@ -147,7 +147,7 @@ android:layout_height="wrap_content" android:padding="8dp" android:text="@string/history_search" android:textColor="#DDDDDD" /> android:textColor="#FFA6A6A6" /> <TextView android:id="@+id/tv_search_clear_his" @@ -157,7 +157,7 @@ android:layout_centerVertical="true" android:padding="8dp" android:text="@string/clear_history_search" android:textColor="@color/gray" /> android:textColor="#FFA6A6A6" /> </RelativeLayout> <com.hanju.lib.library.widget.MyGridView app/res/layout/search_result_activity.xml
@@ -2,19 +2,19 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:layout_height="50dp" android:gravity="center_vertical" android:orientation="horizontal" android:padding="8dp"> @@ -29,11 +29,10 @@ <ImageView android:id="@+id/iv_activity_main_search" android:layout_width="30dp" android:layout_height="30dp" android:layout_width="16dp" android:layout_height="17dp" android:layout_gravity="left|center_vertical" android:layout_marginLeft="11dp" android:padding="4dp" android:layout_marginLeft="14dp" android:scaleType="fitCenter" android:src="@drawable/ic_activity_main_search"></ImageView> @@ -45,12 +44,13 @@ android:layout_weight="1" android:background="@null" android:completionThreshold="1" android:textColor="#333333" android:hint="请输入搜索内容" android:imeOptions="actionSearch" android:textColorHint="#FF787878" android:inputType="text" android:padding="5dp" android:textAppearance="?android:attr/textAppearance" android:textColor="@color/white" android:textCursorDrawable="@null" android:textSize="12sp" /> @@ -64,7 +64,7 @@ android:paddingLeft="17dp" android:paddingRight="18dp" android:text="取消" android:textColor="#ffffffff" android:textColor="@color/theme" android:textSize="12sp"></TextView> </LinearLayout> app/res/layout/search_result_top_bar.xml
@@ -2,7 +2,7 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:orientation="horizontal" android:paddingLeft="8dp" android:paddingRight="8dp" app/res/layout/settings_activity.xml
@@ -2,14 +2,14 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="#FFF5F5F5" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <include layout="@layout/navigation_top_bar" /> @@ -19,8 +19,10 @@ android:layout_weight="1"> <LinearLayout android:background="@color/white" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp" android:orientation="vertical" android:paddingLeft="23.5dp"> @@ -94,7 +96,6 @@ android:visibility="gone" /> <TextView android:visibility="gone" style="@style/TextBlackMedium" android:layout_width="wrap_content" android:layout_height="30dp" @@ -106,7 +107,8 @@ android:padding="8dp" android:text="当前下载位置" android:textColor="@color/gray" android:textSize="12sp" /> android:textSize="12sp" android:visibility="gone" /> <RelativeLayout android:id="@+id/rl_storage_sdcard" @@ -128,10 +130,11 @@ android:checked="true" /> </RelativeLayout> <View android:visibility="gone" style="@style/settingItemCutLineStyle"></View> <View style="@style/settingItemCutLineStyle" android:visibility="gone"></View> <RelativeLayout style="@style/settingItemBgStyle"> <RelativeLayout style="@style/settingItemBgStyle"> <TextView android:id="@+id/tv_storage_sdcard" @@ -150,6 +153,7 @@ </RelativeLayout> <View style="@style/settingItemCutLineStyle"></View> <RelativeLayout android:id="@+id/rl_check_update" style="@style/settingItemBgStyle"> @@ -261,7 +265,9 @@ android:gravity="center_vertical" /> </RelativeLayout> <View android:visibility="gone" style="@style/settingItemCutLineStyle"></View> <View style="@style/settingItemCutLineStyle" android:visibility="gone"></View> <RelativeLayout android:id="@+id/rl_privacy_policy" app/res/layout/specific_detail_fragment.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <androidx.swiperefreshlayout.widget.SwipeRefreshLayout app/res/layout/specific_detail_top.xml
@@ -20,7 +20,7 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <TextView app/res/layout/suggestion_grid_item.xml
@@ -17,7 +17,7 @@ android:singleLine="true" android:text="123123" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#DDDDDD" android:textColor="#FF000000" android:textSize="12sp" /> </LinearLayout> app/res/layout/video_detail_activity.xml
@@ -2,14 +2,14 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <View android:id="@+id/v_status_bar" android:layout_width="match_parent" android:layout_height="15dp" android:background="@color/top_bar_color" /> android:background="@color/white" /> <FrameLayout @@ -27,7 +27,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/v_status_bar" android:background="@color/top_bar_color"> android:background="@color/white"> <FrameLayout android:id="@+id/fragment_video_parser" @@ -208,7 +208,7 @@ android:paddingTop="10dp" android:paddingBottom="10dp" android:text="来源:爱奇艺" android:textColor="@color/white" android:textColor="#FF666666" android:textSize="9sp"></TextView> <View app/res/layout/video_detail_fragment.xml
@@ -3,7 +3,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:background="@color/theme"> android:background="@color/white"> <LinearLayout android:id="@+id/ll_video_detail" app/res/layout/video_episode_fragment.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme"> android:background="@color/white"> <ScrollView android:id="@+id/sv_detail" app/res/layout/videos_activity.xml
@@ -2,7 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme" android:background="@color/white" android:orientation="vertical"> <FrameLayout app/res/values/colors.xml
@@ -33,11 +33,11 @@ <color name="transparent_gray">#99666666</color> <color name="text_color_small">#ffff7300</color> <color name="message_backgroud_gray">#f5f5f5</color> <color name="top_bar_color">#FF000000</color> <color name="top_bar_color">#FFFF4D88</color> <color name="green">#2ac600</color> <color name="light_light_gray">#F2F2F2</color> <color name="news_title_color_gray">#333333</color> <color name="theme">#3C3C3C</color> <color name="theme">#FFFF4D88</color> <color name="blue">#FFffffff</color> <color name="main_color">#fff9644e</color> <color name="black">#ff333333</color> @@ -48,4 +48,6 @@ <color name="qq_blue">#4CAFEA</color> <color name="black1">#ff161514</color> <color name="bg_download_so">#FF987b63</color> <color name="page_title_text_color">#FF000000</color> </resources> app/res/values/styles.xml
@@ -65,13 +65,19 @@ <item name="android:textSize">10sp</item> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <style name="AppTheme" parent="Theme.MaterialComponents"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <!--半透明 已经删除--> <!--<item name="android:windowIsTranslucent">true</item>--> <item name="android:windowNoTitle">true</item> <item name="android:navigationBarColor">@color/top_bar_color</item> <item name="android:navigationBarColor">@color/white</item> <item name="android:colorControlNormal">@color/white</item> <item name="colorAccent">@color/white</item> <item name="colorPrimaryDark">@color/white</item> <item name="statusBarForeground">@color/transparent</item> <item name="statusBarBackground">@color/transparent</item> <item name="android:statusBarColor">@color/black</item> </style> <style name="AppTabTheme" parent="AppTheme"> @@ -292,14 +298,14 @@ <item name="android:gravity">center</item> <item name="android:textSize">12sp</item> <item name="android:layout_marginLeft">11dp</item> <item name="android:textColor">@color/white</item> <item name="android:textColor">#FF232323</item> </style> <style name="loginInputStyle"> <item name="android:background">@null</item> <item name="android:singleLine">true</item> <item name="android:textColor">#FFFFFF</item> <item name="android:textColor">#FFCACACA</item> <item name="android:textCursorDrawable">@drawable/shape_login_input_cursor</item> <item name="android:textSize">14sp</item> </style> @@ -314,8 +320,8 @@ <style name="settingItemBgStyle"> <item name="android:paddingRight">23.5dp</item> <item name="android:paddingTop">26.5dp</item> <item name="android:paddingBottom">26.5dp</item> <item name="android:paddingTop">19dp</item> <item name="android:paddingBottom">19dp</item> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> </style> @@ -332,7 +338,7 @@ <style name="settingItemCutLineStyle"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">1dp</item> <item name="android:background">#000000</item> <item name="android:background">#FFF5F5F5</item> </style> <style name="settingItemTitleStyle"> @@ -343,7 +349,7 @@ <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textColor">#DCDEEA</item> <item name="android:textColor">#FF333333</item> <item name="android:textSize">17sp</item> </style> @@ -385,4 +391,17 @@ <item name="android:background">@color/white</item> </style> <style name="homeNavStyle"> <item name="android:layout_width">0dp</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_weight">1</item> <item name="android:button">@null</item> <item name="android:gravity">center</item> <item name="android:textSize">9sp</item> <item name="android:textAppearance">?android:attr/textAppearanceSmall</item> <item name="android:textColor">@color/selector_bottom_bar_text</item> <item name="android:drawablePadding">5dp</item> </style> </resources> app/src/com/hanju/video/app/entity/recommend/RecommendContent.java
@@ -11,6 +11,7 @@ public final static int TYPE_BANNER = 1; public final static int TYPE_AD = 2; public final static int TYPE_HOMETYPE = 3; public final static int TYPE_DY_VIDEOS = 4; private int type; private List<HomeAd> homeBannerList; app/src/com/hanju/video/app/ui/SplashActivity.java
@@ -19,6 +19,7 @@ import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.hanju.video.app.ui.dialog.PermissionAuthNotifyDialog; import com.hanju.video.app.util.http.BasicTextHttpResponseHandler; import com.hanju.video.app.HanJuApplication; import com.hanju.video.app.util.http.HttpApiUtil; @@ -132,7 +133,24 @@ public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); UserUtil.agreeUserProtocol(getApplicationContext()); myRequetPermission(); //请求权限 vg_ad.post(new Runnable() { @Override public void run() { new PermissionAuthNotifyDialog.Builder(SplashActivity.this).setPositiveButton(null, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); myRequetPermission(); } }).create().show(); } }); } }).setData(data).create().show(); } app/src/com/hanju/video/app/ui/common/VideosFragment.java
@@ -17,9 +17,6 @@ import android.widget.TextView; import android.widget.Toast; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.hanju.video.app.entity.recommend.HomeSpecial; import com.hanju.video.app.util.JsonUtil; app/src/com/hanju/video/app/ui/dialog/PermissionAuthNotifyDialog.java
New file @@ -0,0 +1,86 @@ package com.hanju.video.app.ui.dialog; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; import com.hanju.lib.library.util.SystemCommon; import com.hanju.lib.library.util.common.StringUtils; import com.hanju.video.app.R; /** * 权限请求之前的弹框 */ public class PermissionAuthNotifyDialog extends Dialog { private static String TAG = "UserProtocolDialog"; public PermissionAuthNotifyDialog(Context context) { super(context); this.setCancelable(false); } public PermissionAuthNotifyDialog(Context context, int theme) { super(context, theme); this.setCancelable(false); } public static class Builder { private Activity context; private String positiveButtonText; private OnClickListener positiveButtonClickListener; public Builder(Activity context) { this.context = context; } public Builder setPositiveButton(String positiveButtonText, OnClickListener listener) { this.positiveButtonText = positiveButtonText; this.positiveButtonClickListener = listener; return this; } public PermissionAuthNotifyDialog create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); final PermissionAuthNotifyDialog dialog = new PermissionAuthNotifyDialog(context, R.style.Dialog); dialog.setCanceledOnTouchOutside(false); final View layout = inflater.inflate(R.layout.dialog_auth_notify, null); dialog.addContentView(layout, new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); TextView tv_positive = layout.findViewById(R.id.tv_positive); // set the confirm button if (positiveButtonClickListener != null) { if (!StringUtils.isEmpty(positiveButtonText)) tv_positive.setText(positiveButtonText); tv_positive.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); } }); } dialog.setContentView(layout); android.view.WindowManager.LayoutParams params = dialog.getWindow() .getAttributes(); params.width = (int) ((SystemCommon.getScreenWidth(context) * 3) / 4); params.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; dialog.getWindow().setAttributes(params); return dialog; } } } app/src/com/hanju/video/app/ui/main/DYFeedFragment.java
New file @@ -0,0 +1,106 @@ package com.hanju.video.app.ui.main; import android.os.Bundle; import android.util.Log; import android.view.View; import com.bytedance.sdk.dp.DPSdk; import com.bytedance.sdk.dp.DPWidgetGridParams; import com.bytedance.sdk.dp.IDPGridListener; import com.bytedance.sdk.dp.IDPWidget; import com.hanju.lib.library.widget.myswiperefreshlayout.MySwipeRefreshLayout; import com.hanju.video.app.R; import com.hanju.video.app.ui.MyRetainViewFragment; import com.hanju.video.app.ui.widget.MyRefreshLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; /** * 主页面--抖音视频流 */ public class DYFeedFragment extends MyRetainViewFragment { private static final String TAG = "DYFeedFragment"; private IDPWidget mIDPWidget; private MyRefreshLayout swipeRefreshLayout; public DYFeedFragment() { super(); } private Fragment fragment; @Override public int getContentResource() { return R.layout.fragment_feed_videos; } @Override public void onResume() { super.onResume(); if (mIDPWidget != null && mIDPWidget.getFragment() != null) { mIDPWidget.getFragment().onResume(); } } @Override public void onPause() { super.onPause(); if (mIDPWidget != null && mIDPWidget.getFragment() != null) { mIDPWidget.getFragment().onPause(); } } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (mIDPWidget != null && mIDPWidget.getFragment() != null) { mIDPWidget.getFragment().setUserVisibleHint(isVisibleToUser); } } @Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); if (mIDPWidget != null && mIDPWidget.getFragment() != null) { mIDPWidget.getFragment().onHiddenChanged(hidden); } } @Override public void onCreateView(View contentView, Bundle savedInstanceState) { Log.i(TAG, "onCreateView"); swipeRefreshLayout = contentView.findViewById(R.id.srl_feed); swipeRefreshLayout.setEnabled(true); swipeRefreshLayout.setOnRefreshListener(new MyRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { mIDPWidget.refresh(); } }); init(); } private void init() { mIDPWidget = DPSdk.factory().createDoubleFeed(DPWidgetGridParams.obtain().listener(new IDPGridListener() { @Override public void onDPRefreshFinish() { super.onDPRefreshFinish(); swipeRefreshLayout.setRefreshing(false); } }) ); Fragment fragment = mIDPWidget.getFragment(); if (fragment != null) { getChildFragmentManager().beginTransaction().replace(R.id.fl_container, fragment).commitAllowingStateLoss(); } } private static void log(String msg) { Log.d(TAG, String.valueOf(msg)); } } app/src/com/hanju/video/app/ui/main/DYNewsFragment.java
@@ -80,7 +80,9 @@ } private void initNewsWidget() { mIDPWidget = DPSdk.factory().createNewsTabs(DPWidgetNewsParams.obtain().channelCategory("视频") //热点 news_hot //娱乐 news_entertainment mIDPWidget = DPSdk.factory().createNewsOneTab(DPWidgetNewsParams.obtain().channelCategory("news_entertainment") .listener(new IDPNewsListener() { @Override public void onDPRefreshFinish() { app/src/com/hanju/video/app/ui/main/DiscoverNowFragment.java
@@ -8,6 +8,7 @@ import android.widget.ListView; import android.widget.ProgressBar; import com.androidquery.AQuery; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -19,6 +20,7 @@ import com.hanju.video.app.util.downutils.StringUtils; import com.hanju.lib.library.util.RefreshLayout; import com.hanju.lib.library.util.SingleToast; import com.hanju.video.app.util.ui.StatusBarUtil; import com.qq.e.ads.cfg.VideoOption; import com.qq.e.ads.nativ.ADSize; import com.qq.e.ads.nativ.NativeExpressAD; @@ -47,6 +49,7 @@ private ListView uniqueView; private RefreshLayout rl_unique; private DiscoverVideosAdapter uniqueAdapter; private AQuery mAQuery; public DiscoverNowFragment() { @@ -70,6 +73,8 @@ @Override public void onCreateView(View contentView, Bundle savedInstanceState) { mAQuery = new AQuery(contentView); mAQuery.id(R.id.v_status_bar).height(StatusBarUtil.getStatusBarHeight(getActivity()),false); rl_unique = contentView.findViewById(R.id.rl_unique_ptrlv); uniqueView = contentView.findViewById(R.id.unique_ptrlv); uniqueView.addHeaderView(new View(uniqueView.getContext())); @@ -111,7 +116,7 @@ JSONObject data = jsonObject.getJSONObject("Data"); List<VideoInfo> videoInfos = JsonUtil.videoGson.fromJson( List<VideoInfo> videoInfos = JsonUtil.videoGson.fromJson( data.getJSONArray("list").toString(), new TypeToken<List<VideoInfo>>() { }.getType()); app/src/com/hanju/video/app/ui/main/HomeFragment.java
@@ -5,10 +5,13 @@ import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; @@ -21,6 +24,7 @@ import android.widget.Toast; import com.androidquery.AQuery; import com.google.android.material.appbar.AppBarLayout; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -36,6 +40,7 @@ import com.hanju.video.app.util.ad.CSJADConstant; import com.hanju.video.app.util.ad.GDTADConstant; import com.hanju.video.app.util.ad.IntertitialAdUtil; import com.hanju.video.app.util.ui.StatusBarUtil; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.video.youth.util.YouthUtil; import com.viewpagerindicator.MainTabPageIndicator; @@ -52,6 +57,15 @@ import com.hanju.video.app.ui.recommend.RecommendFragment; import com.hanju.video.app.ui.recommend.SearchActivity; import com.hanju.video.app.R; import net.lucode.hackware.magicindicator.MagicIndicator; import net.lucode.hackware.magicindicator.ViewPagerHelper; import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView; import org.apache.http.Header; import org.json.JSONObject; @@ -78,20 +92,14 @@ */ HomePageAdapter adapter; ViewPager pager; MainTabPageIndicator indicator; TextView tv_search; ImageView iv_msg_dot; FrameLayout fl_indicator; private DiskLruCache cache; private boolean isLogin = false; SharedPreferences preferences;// SharedPreferences preferences; private AQuery mAquery; private MagicIndicator mMagicIndicator; private DYNewsFragment mDYNewsFragment; private NovelFragment mNovelFragment; private AppBarLayout mAppBarLayout; CoordinatorLayout mCoordinatorLayout; private DiskLruCache cache; public HomeFragment() { super(HomeFragment.class.getClass().getName()); @@ -109,11 +117,9 @@ } catch (IOException e) { e.printStackTrace(); } preferences = getContext().getSharedPreferences("user", Context.MODE_PRIVATE); } public static int getVersionNum(Context context) { try { @@ -126,6 +132,7 @@ } } @Override public int getContentResource() { return R.layout.fragment_recommend_category; @@ -133,73 +140,60 @@ private void initView(View view) { view.findViewById(R.id.iv_activity_main_download).setOnClickListener(this); view.findViewById(R.id.ll_activity_main_search).setOnClickListener(this); view.findViewById(R.id.iv_recommend_watch_history).setOnClickListener(this); view.findViewById(R.id.ll_activity_login).setOnClickListener(this); view.findViewById(R.id.iv_recommend_download).setOnClickListener(this); mAquery = new AQuery(view); mMagicIndicator = view.findViewById(R.id.magic_indicator); pager = view.findViewById(R.id.pager_recomend_category); mAquery.id(R.id.v_status_bar).height(StatusBarUtil.getStatusBarHeight(getActivity()), false); mAppBarLayout = view.findViewById(R.id.abl_recommend); mCoordinatorLayout = view.findViewById(R.id.cl_recommend); } private void init() { adapter = new HomePageAdapter( getChildFragmentManager()); pager.setAdapter(adapter); pager.setOffscreenPageLimit(2); CommonNavigator commonNavigator = new CommonNavigator(getActivity()); commonNavigator.setAdapter(navigatorAdapter); commonNavigator.setAdjustMode(true); mMagicIndicator.setNavigator(commonNavigator); ViewPagerHelper.bind(mMagicIndicator, pager); if (adapter.getCount() <= 1) { mMagicIndicator.setVisibility(View.GONE); } else { pager.setCurrentItem(1); } pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { tv_search = view.findViewById(R.id.tv_activity_main_search); iv_msg_dot = view.findViewById(R.id.iv_msg_dot); } @Override public void onPageSelected(int position) { mAppBarLayout.setExpanded(true); } @Override public void onPageScrollStateChanged(int state) { } }); // getCategories(); } @Override public void onCreateView(View contentView, Bundle savedInstanceState) { getActivity().setTheme(R.style.AppTabThemeMain); mAquery = new AQuery(contentView); initView(contentView); pager = contentView.findViewById(R.id.pager_recomend_category); fl_indicator = contentView.findViewById(R.id.fl_indicator); if (fl_indicator.getChildCount() > 0) { fl_indicator.removeAllViews(); } DiskLruCache.Snapshot snapshot = null; try { if (cache != null) { snapshot = cache.get(getKey("getCategories")); if (snapshot != null) { List<HomeNav> list = JsonUtil.videoGson.fromJson( snapshot.getString(0), new TypeToken<List<HomeNav>>() { }.getType()); categories.addAll(list); } } } catch (IOException e) { e.printStackTrace(); } finally { if (snapshot != null) { snapshot.close(); } } init(); adapter = new HomePageAdapter( getChildFragmentManager(), categories); pager.setAdapter(adapter); indicator = new MainTabPageIndicator( pager.getContext()); indicator.setViewPager(pager, 0); fl_indicator.addView(indicator); if (categories.size() > 1) { fl_indicator.setVisibility(View.VISIBLE); } else { fl_indicator.setVisibility(View.GONE); } getHotSearch(); getCategories(); } private String getKey(String method) { return new Md5FileNameGenerator().generate(method); } @Override public void onResume() { super.onResume(); isLogin = !StringUtils.isEmpty(preferences.getString("LoginUid", "")); EventBus.getDefault().register(this); // EventBus.getDefault().register(this); if (YouthUtil.isOpenYouthMode(getContext())) { mAquery.id(R.id.ll_top).visibility(View.GONE); } else { @@ -219,15 +213,79 @@ EventBus.getDefault().unregister(this); } class HomePageAdapter extends FragmentStatePagerAdapter { private FragmentManager fm; private List<Fragment> fragments = new ArrayList(); public HomePageAdapter(FragmentManager fm) { super(fm); this.fm = fm; if (AdUtil.isCanInitCSJ()) { mDYNewsFragment = new DYNewsFragment(); mNovelFragment = new NovelFragment(fm); fragments.add(mNovelFragment); fragments.add(mDYNewsFragment); } HomeNav homeNav = new HomeNav(); homeNav.setName("推荐"); homeNav.setDataKey("recommend"); homeNav.setDataType("recommend"); fragments.add(fragments.size() > 0 ? 1 : 0, RecommendFragment.newInstance(homeNav, 0 + "")); } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } @Nullable @Override public CharSequence getPageTitle(int position) { if (fragments.size() > 1) { switch (position) { case 0: return "小说"; case 1: return "推荐"; case 2: return "话题"; default: return ""; } } else { return "推荐"; } } } @Override public void onClick(View view) { switch (view.getId()) { case R.id.iv_recommend_watch_history: { startActivity(new Intent(getContext(), WatchHistoryActivity.class)); } break; } } public void onEventMainThread(VideoType type) { getCategories(); } private String getKey(String method) { return new Md5FileNameGenerator().generate(method); } List<HomeNav> categories = new ArrayList<>(); int count = 1; private void getCategories() { SharedPreferences preferences = pager.getContext().getSharedPreferences( "user", Context.MODE_PRIVATE); @@ -239,10 +297,12 @@ Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.getBoolean("IsPost")) { Gson gson = new GsonBuilder().setFieldNamingPolicy( FieldNamingPolicy.UPPER_CAMEL_CASE) .create(); categories.clear(); List<HomeNav> list = JsonUtil.videoGson.fromJson( List<HomeNav> list = gson.fromJson( jsonObject.getJSONObject("Data") .getJSONArray("data").toString(), new TypeToken<List<HomeNav>>() { @@ -250,14 +310,7 @@ categories.addAll(list); if (categories.size() > 1) { fl_indicator.setVisibility(View.VISIBLE); } else { fl_indicator.setVisibility(View.GONE); } adapter.notifyDataSetChanged(); indicator.notifyDataSetChanged(); pager.setCurrentItem(0); @@ -266,7 +319,7 @@ try { DiskLruCache.Editor editor = cache .edit(getKey("getCategories")); editor.set(0, JsonUtil.videoGson.toJson(categories)); editor.set(0, gson.toJson(categories)); editor.commit(); } catch (IOException e) { } @@ -294,157 +347,58 @@ }); } class HomePageAdapter extends FragmentStatePagerAdapter { private FragmentManager fm; private List<HomeNav> mlist; private Map<Integer, Fragment> fragments = new HashMap<>(); public HomePageAdapter(FragmentManager fm, List<HomeNav> list) { super(fm); this.fm = fm; this.mlist = list; } @Override public Fragment getItem(int position) { Fragment fragment = RecommendFragment.newInstance(mlist.get(position), position + ""); return fragment; } private CommonNavigatorAdapter navigatorAdapter = new CommonNavigatorAdapter() { @Override public int getCount() { return mlist.size(); return adapter.getCount(); } // @Override // public Object instantiateItem(ViewGroup container, int position) { // Fragment fragment = (Fragment) super.instantiateItem(container, position); // fm.beginTransaction().show(fragment).commit(); // return fragment; // } // // @Override // public void destroyItem(ViewGroup container, int position, Object object) { // Fragment fragment = fragments.get(position); // try { // fm.beginTransaction().hide(fragment).commit(); // } catch (Exception e) { // // } // } @Nullable @Override public CharSequence getPageTitle(int position) { return mlist.get(position).getName(); } } public IPagerTitleView getTitleView(final Context context, final int index) { ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context) { @Override public void onSelected(int index, int totalCount) { super.onSelected(index, totalCount); @Override public void onClick(View view) { switch (view.getId()) { case R.id.iv_recommend_watch_history: { startActivity(new Intent(getContext(), WatchHistoryActivity.class)); } break; case R.id.iv_activity_main_download: { Toast.makeText(getContext(), "暂时不支持下载!", Toast.LENGTH_LONG).show(); } break; case R.id.ll_activity_main_search: { Intent intent = new Intent(getContext(), SearchActivity.class); intent.putExtra("key", tv_search.getText().toString()); startActivity(intent); } break; case R.id.nat: openMyselfSpread(); break; case R.id.iv_recommend_download: startActivity(new Intent(getContext(), DownloadActivity.class)); break; case R.id.mine_rl_head: Intent intent = new Intent(); if (isLogin) {// 登录后 逻辑 intent.setClass(getContext(), PersonInfoActivity.class); } else {// 登录前 intent.setClass(getContext(), LoginActivity.class); setTextSize(20); getPaint().setFakeBoldText(true); } startActivity(intent); break; // case R.id.rl_mine_message: // openMsg(); // break; @Override public void onDeselected(int index, int totalCount) { super.onDeselected(index, totalCount); setTextSize(14); getPaint().setFakeBoldText(false); } }; colorTransitionPagerTitleView.setNormalColor(Color.parseColor("#80FFFFFF")); colorTransitionPagerTitleView.setSelectedColor(Color.WHITE); colorTransitionPagerTitleView.setText(adapter.getPageTitle(index)); colorTransitionPagerTitleView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { pager.setCurrentItem(index); } }); colorTransitionPagerTitleView.setTextSize(14); return colorTransitionPagerTitleView; } } /** * 打开顶部自我推广 */ private void openMyselfSpread() { SharedPreferences preferences = getContext().getSharedPreferences( "user", Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putLong("latestAdtime", System.currentTimeMillis()); editor.commit(); Intent intent = new Intent(getContext(), BrowserActivity.class); intent.putExtra("url", preferences.getString("tuiguang_add", "")); startActivity(intent); } /** * 打开消息页面 */ private void openMsg() { EventBus.getDefault().post(new NewComment(true)); SharedPreferences preferences = getContext().getSharedPreferences( "user", Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putBoolean("isCheckedCom", false); editor.commit(); startActivity(new Intent(getContext(), SystemMessageActivity.class)); } private void getHotSearch() { SharedPreferences preferences = getContext().getSharedPreferences("user", Context.MODE_PRIVATE); String uid = preferences.getString("uid", ""); HttpApiUtil.getHotSearch(getContext(), uid, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.getBoolean("IsPost")) { Gson gson = new GsonBuilder() .create(); List<String> hotSearchs = gson.fromJson(jsonObject .getJSONObject("Data").getJSONArray("data") .toString(), new TypeToken<List<String>>() { }.getType()); if (hotSearchs != null && hotSearchs.size() > 0) { Random random = new Random(); int p = random.nextInt(hotSearchs.size()); tv_search.setText(hotSearchs.get(p)); } } } }); } private String getDay(long time) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String date = format.format(new Date(time)); return date; } //此为tab指示器回调 @Override public IPagerIndicator getIndicator(Context context) { LinePagerIndicator indicator = new LinePagerIndicator(context); indicator.setLineHeight(0); indicator.setColors(Color.WHITE); indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); indicator.setRoundRadius(5); return indicator; } }; } app/src/com/hanju/video/app/ui/main/MainActivity.java
@@ -14,7 +14,9 @@ import android.widget.RadioGroup; import android.widget.Toast; import com.androidquery.AQuery; import com.hanju.lib.library.util.FragmentSwitchHelper; import com.hanju.lib.library.util.FragmentSwitchHelperV2; import com.hanju.video.app.entity.ad.AdPositionEnum; import com.hanju.video.app.ui.media.VideoDetailActivity; import com.hanju.video.app.util.ad.AdUtil; @@ -34,25 +36,78 @@ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import androidx.fragment.app.Fragment; import de.greenrobot.event.EventBus; public class MainActivity extends BaseActivity implements View.OnClickListener { private ProgressDialog pd = null; SharedPreferences preferences;// 广告商城,获取图标状态信息 private RadioGroup rg_nav; private FragmentSwitchHelper mFragmentSwitchHelper; private FragmentSwitchHelperV2 mFragmentSwitchHelper; private AQuery mAQuery; @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } private void initFragment() { List<Fragment> list = new ArrayList<>(); list.add(new HomeFragment()); list.add(new MineFragment()); list.add(new DiscoverNowFragment()); if (AdUtil.isCanInitCSJ()) { list.add(new DYVideoFragment()); list.add(new DYFeedFragment()); mAQuery.id(R.id.rb_nav_category).visibility(View.GONE); mAQuery.id(R.id.rb_nav_feed_videos).visibility(View.VISIBLE); mAQuery.id(R.id.rb_nav_draw_video).visibility(View.VISIBLE); } else { list.add(new CategoryFragment()); mAQuery.id(R.id.rb_nav_category).visibility(View.VISIBLE); mAQuery.id(R.id.rb_nav_feed_videos).visibility(View.GONE); mAQuery.id(R.id.rb_nav_draw_video).visibility(View.GONE); } Fragment[] fs = new Fragment[list.size()]; list.toArray(fs); mFragmentSwitchHelper = FragmentSwitchHelperV2.create(R.id.fl_main_fragment_container, getSupportFragmentManager(), fs); } private void setNavShow() { if (YouthUtil.isOpenYouthMode(getApplicationContext())) { findViewById(R.id.rb_nav_discover).setVisibility(View.GONE); findViewById(R.id.rb_nav_category).setVisibility(View.GONE); mAQuery.id(R.id.rb_nav_feed_videos).visibility(View.GONE); mAQuery.id(R.id.rb_nav_draw_video).visibility(View.GONE); } else { findViewById(R.id.rb_nav_discover).setVisibility(View.VISIBLE); if (AdUtil.isCanInitCSJ()) { mAQuery.id(R.id.rb_nav_category).visibility(View.GONE); mAQuery.id(R.id.rb_nav_feed_videos).visibility(View.VISIBLE); mAQuery.id(R.id.rb_nav_draw_video).visibility(View.VISIBLE); } else { mAQuery.id(R.id.rb_nav_category).visibility(View.VISIBLE); mAQuery.id(R.id.rb_nav_feed_videos).visibility(View.GONE); mAQuery.id(R.id.rb_nav_draw_video).visibility(View.GONE); } } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 锁定竖屏 setContentView(R.layout.activity_main); mAQuery = new AQuery(this); initFragment(); exitDialogBuilder = new ExitDialog.Builder(this); @@ -65,7 +120,6 @@ exitDialogBuilder.refreshAd(); } }); StatusBarUtil.init(this); pd = new ProgressDialog(this); pd.setMessage("正在请求网络..."); @@ -73,14 +127,8 @@ preferences = getSharedPreferences("user", Context.MODE_PRIVATE); StatusBarUtil.init(this); // StatusBarUtil.init(this); // initialer.run(); mFragmentSwitchHelper = FragmentSwitchHelper.create( R.id.fl_main_fragment_container, getSupportFragmentManager(), new HomeFragment(), new CategoryFragment(), new DiscoverNowFragment(), new MineFragment(), new GuessLikeFragment()); rg_nav = findViewById(R.id.rg_nav); rg_nav.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @@ -90,6 +138,16 @@ case R.id.rb_nav_recommend: { mFragmentSwitchHelper .changeFragment(HomeFragment.class); } break; case R.id.rb_nav_draw_video: { mFragmentSwitchHelper .changeFragment(DYVideoFragment.class); } break; case R.id.rb_nav_feed_videos: { mFragmentSwitchHelper .changeFragment(DYFeedFragment.class); } break; case R.id.rb_nav_category: { @@ -127,14 +185,7 @@ @Override public void onResume() { super.onResume(); if (YouthUtil.isOpenYouthMode(getApplicationContext())) { findViewById(R.id.rb_nav_discover).setVisibility(View.GONE); findViewById(R.id.rb_nav_category).setVisibility(View.GONE); } else { findViewById(R.id.rb_nav_discover).setVisibility(View.VISIBLE); findViewById(R.id.rb_nav_category).setVisibility(View.VISIBLE); } setNavShow(); } @Override app/src/com/hanju/video/app/ui/main/MineFragment.java
@@ -34,6 +34,7 @@ import com.hanju.lib.library.content.ConnectivityChangeHelper; import com.hanju.lib.library.content.ConnectivityChangeHelper.OnConnectivityChangeListener; import com.hanju.lib.library.util.common.StringUtils; import com.hanju.video.app.util.ui.StatusBarUtil; import com.umeng.analytics.MobclickAgent; import com.umeng.socialize.UMShareAPI; import com.umeng.socialize.UMShareListener; @@ -118,6 +119,7 @@ @Override public void onCreateView(View contentView, Bundle savedInstanceState) { mAquery = new AQuery(contentView); mAquery.id(R.id.v_status_bar).height(StatusBarUtil.getStatusBarHeight(getActivity()),false); tv_no_network = contentView.findViewById(R.id.tv_no_network); rv_watch_history = contentView.findViewById(R.id.rv_watch_history); tv_no_network.setOnClickListener(this); @@ -173,15 +175,15 @@ WatchHistoryActivity.class)); } break; case R.id.iv_activity_main_download: { Toast.makeText(tv_no_network.getContext(), "暂时不支持下载!", Toast.LENGTH_LONG).show(); } break; case R.id.ll_activity_main_search: { startActivity(new Intent(tv_no_network.getContext(), SearchActivity.class)); } break; // case R.id.iv_activity_main_download: { // Toast.makeText(tv_no_network.getContext(), "暂时不支持下载!", Toast.LENGTH_LONG).show(); // } // break; // case R.id.ll_activity_main_search: { // startActivity(new Intent(tv_no_network.getContext(), // SearchActivity.class)); // } // break; case R.id.mine_rl_head: Intent intent = new Intent(); if (isLogin) {// 登录后 逻辑 app/src/com/hanju/video/app/ui/media/EpisodeFragment.java
@@ -512,10 +512,10 @@ TextView tv = (TextView) child.getChildAt(0); View view = child.getChildAt(1); if (i == index) { tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(getContext().getColor(R.color.theme)); view.setVisibility(View.VISIBLE); } else { tv.setTextColor(Color.parseColor("#ADADAD")); tv.setTextColor(Color.parseColor("#FF999999")); view.setVisibility(View.GONE); } } app/src/com/hanju/video/app/ui/media/VideoDetailActivity.java
@@ -1017,7 +1017,7 @@ } //加载视频广告 loadFullVideoAd(); // loadFullVideoAd(); } catch (Exception e) { e.printStackTrace(); } @@ -1396,7 +1396,7 @@ fl.setPadding(DimenUtils.dip2px(getApplicationContext(), 8), 0, DimenUtils.dip2px(getApplicationContext(), 8), 0); GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, new int[]{Color.parseColor("#585858"), Color.parseColor("#585858")}); new int[]{Color.parseColor("#FF999999"), Color.parseColor("#FF999999")}); int radius = DimenUtils.dip2px(getApplicationContext(), 5); gd.setCornerRadii(new float[]{radius, radius, radius, radius, 0, 0, 0, 0}); fl.setBackground(gd); app/src/com/hanju/video/app/ui/recommend/HomeSpecialAdapter.java
@@ -11,6 +11,7 @@ import android.widget.TextView; import com.bumptech.glide.Glide; import com.bytedance.novel.pangolin.NovelSDK; import com.hanju.video.app.R; import com.hanju.video.app.entity.recommend.HomeSpecial; import com.hanju.video.app.ui.category.MVideosActivity; @@ -63,13 +64,24 @@ HomeSpecial homeSpecial = mHomeSpecials.get(position); Holder holder = (Holder) convertView.getTag(); holder.tv_name.setText(homeSpecial.getName()); Glide.with(context).load(homeSpecial.getIcon()).transform(new GlideCircleTransform(context)).into(holder.iv_icon); if (homeSpecial.getName().contains("小说")) { //.transform(new GlideCircleTransform(context)) holder.iv_icon.setImageResource(R.drawable.icon_home_special_novel); // Glide.with(context).load(context.getDrawable(R.drawable.icon_home_special_novel)).into(holder.iv_icon); } else { //.transform(new GlideCircleTransform(context)) Glide.with(context).load(homeSpecial.getIcon()).into(holder.iv_icon); } convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, MVideosActivity.class); intent.putExtra("special", homeSpecial); context.startActivity(intent); if (homeSpecial.getName().contains("小说")) { NovelSDK.INSTANCE.openNovelPage(context); } else { Intent intent = new Intent(context, MVideosActivity.class); intent.putExtra("special", homeSpecial); context.startActivity(intent); } } }); app/src/com/hanju/video/app/ui/recommend/RecommendFragment.java
@@ -85,6 +85,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Random; import java.util.Set; import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade; @@ -134,6 +135,8 @@ private View loading; private TextView tv_search; private int totalCount = 0; private Set<String> emptyHomeTypes = new HashSet<>(); @@ -144,6 +147,8 @@ if (position == 0) { getHotStars(); } if (mRecommendNewAdapter != null) mRecommendNewAdapter.refresh(); page = 1; //加载广告 loadAd(); @@ -169,6 +174,33 @@ fragment.setArguments(bundle); return fragment; } } private void getHotSearch() { SharedPreferences preferences = getContext().getSharedPreferences("user", Context.MODE_PRIVATE); String uid = preferences.getString("uid", ""); HttpApiUtil.getHotSearch(getContext(), uid, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.getBoolean("IsPost")) { Gson gson = new GsonBuilder() .create(); List<String> hotSearchs = gson.fromJson(jsonObject .getJSONObject("Data").getJSONArray("data") .toString(), new TypeToken<List<String>>() { }.getType()); if (hotSearchs != null && hotSearchs.size() > 0) { Random random = new Random(); int p = random.nextInt(hotSearchs.size()); tv_search.setText(hotSearchs.get(p)); } } } }); } @Override @@ -322,6 +354,9 @@ } }); tv_search = contentView.findViewById(R.id.tv_search); tv_search.setOnClickListener(this); int width = (int) SystemCommon.getScreenWidth(context); rl_recommend = contentView.findViewById(R.id.rl_recommend); @@ -412,6 +447,8 @@ if (position == 0) { getAdRecommendRight(); } getHotSearch(); } private List<ExpressAdContainer> adList; @@ -563,9 +600,12 @@ } if (gv_special.getAdapter() == null) { mHomeSpecialAdapter = new HomeSpecialAdapter(mHomeSpecials, getActivity()); gv_special.setNumColumns(mHomeSpecials.size()); gv_special.setAdapter(mHomeSpecialAdapter); } else } else { gv_special.setNumColumns(mHomeSpecials.size()); mHomeSpecialAdapter.notifyDataSetChanged(); } } private void loadCacheData() { @@ -633,7 +673,7 @@ snapshot = cache.get(getKey("getHomeType") + type.getId()); if (snapshot != null) { List<HomeType> homeTypes = JsonUtil.videoGson.fromJson( List<HomeType> homeTypes = JsonUtil.videoGson.fromJson( snapshot.getString(0), new TypeToken<List<HomeType>>() { }.getType()); @@ -657,13 +697,16 @@ snapshot = cache.get(getKey("getRecommendSearchSpecial") + type.getId()); if (snapshot != null) { List<HomeSpecial> homeSpecials = JsonUtil.videoGson.fromJson( List<HomeSpecial> homeSpecials = JsonUtil.videoGson.fromJson( snapshot.getString(0), new TypeToken<List<HomeSpecial>>() { }.getType()); mHomeSpecials.clear(); if (homeSpecials != null) { mHomeSpecials.addAll(homeSpecials); HomeSpecial novel = new HomeSpecial(); novel.setName("小说"); mHomeSpecials.add(novel); // mRecommendNewAdapter.notifyDataSetChanged(); } } @@ -762,6 +805,12 @@ } } if (YouthUtil.isOpenYouthMode(getContext())) { tv_search.setVisibility(View.GONE); } else { tv_search.setVisibility(View.VISIBLE); } } @@ -828,7 +877,7 @@ throws Exception { if (jsonObject.getBoolean("IsPost")) { List<HomeAd> homeAds = JsonUtil.videoGson.fromJson(jsonObject List<HomeAd> homeAds = JsonUtil.videoGson.fromJson(jsonObject .getJSONObject("Data").getJSONArray("data") .toString(), new TypeToken<List<HomeAd>>() { }.getType()); @@ -879,6 +928,9 @@ if (homeSpecials != null) { mHomeSpecials.clear(); mHomeSpecials.addAll(homeSpecials); HomeSpecial novel = new HomeSpecial(); novel.setName("小说"); mHomeSpecials.add(novel); } setHomeSpecialData(); // //缓存 @@ -945,7 +997,7 @@ List<HomeVideo> homeList = new ArrayList<HomeVideo>(); if (homeArray != null && homeArray.length() > 0) { for (int j = 0; j < homeArray.length(); j++) { homeList.add( JsonUtil.videoGson.fromJson(homeArray homeList.add(JsonUtil.videoGson.fromJson(homeArray .optJSONObject(j).toString(), HomeVideo.class)); } @@ -1024,6 +1076,12 @@ startActivity(intent); } break; case R.id.tv_search: { startActivity(new Intent(getContext(), SearchActivity.class)); } break; default: break; } @@ -1053,7 +1111,7 @@ if (jsonObject.getBoolean("IsPost")) { hotStars.clear(); List<HotStar> hotStarList = JsonUtil.videoGson.fromJson( List<HotStar> hotStarList = JsonUtil.videoGson.fromJson( jsonObject.getJSONObject("Data") .getJSONArray("data").toString(), new TypeToken<List<HotStar>>() { app/src/com/hanju/video/app/ui/recommend/RecommendNewAdapter.java
@@ -14,6 +14,11 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.bytedance.sdk.dp.DPSdk; import com.bytedance.sdk.dp.DPWidgetVideoCardParams; import com.bytedance.sdk.dp.IDPElement; import com.bytedance.sdk.dp.IDPVideoCardListener; import com.bytedance.sdk.dp.IDPWidgetFactory; import com.bytedance.sdk.openadsdk.TTAdDislike; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; @@ -45,8 +50,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.TreeSet; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; public class RecommendNewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { @@ -68,6 +75,11 @@ private List<View> headerViewList; private View footerView; //视频卡片 private FrameLayout mVideoCardLayout; private IDPElement mVideoCardElement; private TextView mVideoCardTitle; public void setHeaderView(List<View> viewList) { this.headerViewList = viewList; @@ -160,6 +172,10 @@ return new HomeTypeHolder(inflater.inflate(R.layout.item_recommend_home_type, null, false), new RecyclerView.RecycledViewPool()); case RecommendContent.TYPE_AD: return new AdHolder(inflater.inflate(R.layout.item_recommend_home_type_ad, parent, false)); case RecommendContent.TYPE_DY_VIDEOS: loadVideoCard(); return new DYVideosHolder(inflater.inflate(R.layout.item_recommend_home_dy_videos, parent, false)); } return null; } @@ -176,6 +192,8 @@ int p = i; if (headerViewList != null) p -= headerViewList.size(); p -= (hasDYVideos() ? 1 : 0); if (viewHolder instanceof HomeTypeHolder) { @@ -249,7 +267,7 @@ v.getContext().startActivity(intent); } else { VideoType type = JsonUtil.videoGson.fromJson(homeType.getParams().replace( VideoType type = JsonUtil.videoGson.fromJson(homeType.getParams().replace( "\\" + "\"", "\""), VideoType.class); try { intent = new Intent(v.getContext(), Class.forName(homeType.getActivity())); @@ -275,8 +293,13 @@ } else { holder.ll_container.setVisibility(View.GONE); } } else if (viewHolder instanceof DYVideosHolder) { final DYVideosHolder holder = (DYVideosHolder) viewHolder; mVideoCardLayout = holder.fl_container; mVideoCardTitle = holder.tv_title; } } @Override public int getItemCount() { @@ -285,6 +308,9 @@ count += headerViewList.size(); if (footerView != null) count += 1; count += (hasDYVideos() ? 1 : 0); return count; } @@ -313,14 +339,33 @@ if (headerViewList != null) position -= headerViewList.size(); if (position >= contentList.size() && footerView != null) { if (position >= contentList.size() + (hasDYVideos() ? 1 : 0) && footerView != null) { return TYPE_FOOTER; } if (hasDYVideos() && position == 0) { return RecommendContent.TYPE_DY_VIDEOS; } if (hasDYVideos()) { position--; } if (contentList.get(position) instanceof HomeType) return RecommendContent.TYPE_HOMETYPE; else return RecommendContent.TYPE_AD; } private boolean hasDYVideos() { return AdUtil.isCanInitCSJ(); } public void refresh() { loadVideoCard(); } class HomeTypeHolder extends RecyclerView.ViewHolder { @@ -358,6 +403,23 @@ ll_container = view.findViewById(R.id.ll_container); fl_ad = view.findViewById(R.id.fl_ad); rl_title_item = view.findViewById(R.id.rl_title_item); } } class DYVideosHolder extends RecyclerView.ViewHolder { FrameLayout fl_container; TextView tv_title; View view; public DYVideosHolder(View view) { super(view); this.view = view; fl_container = view.findViewById(R.id.fl_container); tv_title = view.findViewById(R.id.tv_title); } } @@ -563,4 +625,144 @@ } private void loadVideoCard() { if (!AdUtil.isCanInitCSJ()) { return; } DPWidgetVideoCardParams params = DPWidgetVideoCardParams.obtain() .hideTitle(true) .listener(new IDPVideoCardListener() { @Override public void onDPItemClick(Map<String, Object> map) { log("onDPItemClick map = " + map.toString()); } @Override public void onDPLSwipeEnter() { log("onDPLSwipeEnter"); } @Override public void onDPRequestStart(@Nullable Map<String, Object> map) { log("onDPRequestStart"); } @Override public void onDPRequestSuccess(List<Map<String, Object>> list) { if (list == null) { return; } for (int i = 0; i < list.size(); i++) { log("onDPRequestSuccess i = " + i + ", map = " + list.get(i).toString()); } } @Override public void onDPRequestFail(int code, String msg, @Nullable Map<String, Object> map) { if (map == null) { log("onDPRequestFail code = " + code + ", msg = " + msg); return; } log("onDPRequestFail code = " + code + ", msg = " + msg + ", map = " + map.toString()); } @Override public void onDPClientShow(@Nullable Map<String, Object> map) { log("onDPClientShow"); } @Override public void onDPClickAuthorName(Map<String, Object> map) { log("onDPClickAuthorName map = " + map.toString()); } @Override public void onDPClickAvatar(Map<String, Object> map) { log("onDPClickAvatar map = " + map.toString()); } @Override public void onDPClickComment(Map<String, Object> map) { log("onDPClickComment map = " + map.toString()); } @Override public void onDPClickLike(boolean isLike, Map<String, Object> map) { log("onDPClickLike isLike = " + isLike + ", map = " + map.toString()); } @Override public void onDPVideoPlay(Map<String, Object> map) { log("onDPVideoPlay map = " + map.toString()); } @Override public void onDPVideoPause(Map<String, Object> map) { log("onDPVideoPause map = " + map.toString()); } @Override public void onDPVideoContinue(Map<String, Object> map) { log("onDPVideoContinue map = " + map.toString()); } @Override public void onDPVideoOver(Map<String, Object> map) { log("onDPVideoOver map = " + map.toString()); } @Override public void onDPVideoCompletion(Map<String, Object> map) { log("onDPVideoCompletion map = " + map.toString()); } }) .dislikeListener(mContext, new DPWidgetVideoCardParams.IDislikeListener() { @Override public void onSelected(String msg) { // 如果 hideTitle 为 true,可以不做任何处理 log("dislike msg = " + msg); if (mVideoCardLayout == null) { return; } mVideoCardLayout.removeAllViews(); mVideoCardTitle.setVisibility(View.GONE); } }); DPSdk.factory().loadSmallVideoCard(params, new IDPWidgetFactory.Callback() { @Override public void onError(int code, String msg) { log("onError code = " + code + ", msg = " + msg); } @Override public void onSuccess(IDPElement data) { mVideoCardElement = data; View view = data.getView(); if (view == null || mVideoCardLayout == null) { return; } mVideoCardLayout.removeAllViews(); ViewGroup viewGroup = (ViewGroup) view.getParent(); if (viewGroup != null) { viewGroup.removeAllViews(); } mVideoCardLayout.addView(view); mVideoCardElement.reportShow(); mVideoCardTitle.setVisibility(View.VISIBLE); notifyDataSetChanged(); } }); } private static void log(String msg) { Log.d(TAG, String.valueOf(msg)); } } app/src/com/hanju/video/app/ui/video/SearchResultAdapter.java
@@ -127,7 +127,7 @@ } else { requestBuilder = Glide.with(mContext).load(pic); } requestBuilder.transition(withCrossFade()).placeholder(R.color.black).into(albumVideoHolder.iv_picture); requestBuilder.transition(withCrossFade()).placeholder(R.drawable.shape_default_cover).into(albumVideoHolder.iv_picture); } catch (IllegalArgumentException e) { e.printStackTrace(); @@ -226,7 +226,7 @@ final VideoInfo info = videoContent.getVideo(); SimpleVideoHolder simpleVideoHolder = (SimpleVideoHolder) holder; try { Glide.with(mContext).load(info.getPicture()).transition(withCrossFade()).placeholder(R.color.black).into(simpleVideoHolder.iv_movie_cover); Glide.with(mContext).load(info.getPicture()).transition(withCrossFade()).placeholder(R.drawable.shape_default_cover).into(simpleVideoHolder.iv_movie_cover); } catch (IllegalArgumentException e) { e.printStackTrace(); } app/src/com/hanju/video/app/ui/video/VideoColumn2Adapter.java
@@ -93,7 +93,7 @@ super.getItemOffsets(outRect, view, parent, state); int index = parent.getChildAdapterPosition(view); int total = parent.getAdapter().getItemCount(); int minWidth = DimenUtils.dipToPixels(2, view.getContext()); int minWidth = DimenUtils.dipToPixels(3, view.getContext()); if (index % 2 == 0) { outRect.left = 0; //第一列左边贴边 outRect.right = minWidth; @@ -137,7 +137,7 @@ super.getItemOffsets(outRect, view, parent, state); int index = parent.getChildAdapterPosition(view); int total = parent.getAdapter().getItemCount(); int minWidth = DimenUtils.dipToPixels(2, view.getContext()); int minWidth = DimenUtils.dipToPixels(3, view.getContext()); if (index == 0) { outRect.left = minWidth * 2; //第一列左边贴边 outRect.right = minWidth; @@ -167,7 +167,7 @@ super.getItemOffsets(outRect, view, parent, state); int index = parent.getChildAdapterPosition(view); int total = parent.getAdapter().getItemCount(); int minWidth = DimenUtils.dipToPixels(4, view.getContext()); int minWidth = DimenUtils.dipToPixels(2, view.getContext()); if (index % 3 == 0) { outRect.left = 0; //第一列左边贴边 outRect.right = minWidth * 2; @@ -204,9 +204,9 @@ public static int getItemWidth(Activity activity, int column, int padding) { int deviceWidth = DimenUtils.getScreenWidth(activity); if (column == 3) return (deviceWidth - DimenUtils.dip2px(activity, 3 * 2) - padding) / 3; return (deviceWidth - DimenUtils.dip2px(activity, 6 * 2) - padding) / 3; else if (column == 2) return (deviceWidth - DimenUtils.dip2px(activity, 3) - padding) / 2; return (deviceWidth - DimenUtils.dip2px(activity, 6) - padding) / 2; else return (int) (deviceWidth / 2.5f); } app/src/com/hanju/video/app/util/ui/ScrollAppBarLayoutBehavior.java
New file @@ -0,0 +1,47 @@ package com.hanju.video.app.util.ui; import android.content.Context; import android.util.AttributeSet; import android.view.View; import com.google.android.material.appbar.AppBarLayout; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.core.view.ViewCompat; public class ScrollAppBarLayoutBehavior extends AppBarLayout.Behavior { public ScrollAppBarLayoutBehavior() { super(); } public ScrollAppBarLayoutBehavior(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, int dx, int dy, int[] consumed, int type) { super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed, type); stopNestedScrollIfNeeded(dy, child, target, type); } @Override public void onNestedScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type) { super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, type); stopNestedScrollIfNeeded(dyUnconsumed, child, target, type); } private void stopNestedScrollIfNeeded(int dy, AppBarLayout child, View target, int type) { if (type == ViewCompat.TYPE_NON_TOUCH) { final int currOffset = getTopAndBottomOffset(); if ((dy < 0 && currOffset == 0) || (dy > 0 && currOffset == -child.getTotalScrollRange())) { ViewCompat.stopNestedScroll(target, ViewCompat.TYPE_NON_TOUCH); } } } } app/src/com/hanju/video/app/util/ui/StatusBarUtil.java
@@ -28,4 +28,19 @@ } public static int getStatusBarHeight(Activity context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { int result = 0; int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = context.getResources().getDimensionPixelSize(resourceId); } return result; } else { return 0; } } } library-mine/src/com/hanju/lib/library/util/FragmentSwitchHelperV2.java
New file @@ -0,0 +1,81 @@ package com.hanju.lib.library.util; import android.util.Log; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; public class FragmentSwitchHelperV2 { private static final String TAG = "FragmentSwitchHelper"; public FragmentManager mFragmentManager; private Fragment[] mFragments; private Fragment mCurrentFragment; private int mContainerId; public Fragment getFragmentByName(String name) { if (mFragments == null || mFragments.length == 0) return null; for (Fragment m : mFragments) if (name.contains(m.getClass().getName())) { return m; } return null; } public static FragmentSwitchHelperV2 create(int containerId, FragmentManager fragmentManager, Fragment... fragments) { return new FragmentSwitchHelperV2(containerId, fragmentManager, fragments); } private FragmentSwitchHelperV2(int containerId, FragmentManager fragmentManager, Fragment... fragments) { this.mContainerId = containerId; this.mFragments = fragments; this.mFragmentManager = fragmentManager; } public void changeFragment(Class<? extends Fragment> replaceFragmentClass) { if (!mFragmentManager.isDestroyed()) { Fragment replaceFragment = mFragmentManager .findFragmentByTag(replaceFragmentClass.getName()); if (mCurrentFragment == replaceFragment && mCurrentFragment != null) { Log.d(TAG, "changeFragment noChange "); return; } FragmentTransaction fragmentTransaction = mFragmentManager .beginTransaction(); if (mCurrentFragment != null) { fragmentTransaction.hide(mCurrentFragment); Log.d(TAG, "changeFragment detach " + mCurrentFragment.getClass().getName()); } if (replaceFragment == null) { for (Fragment item : mFragments) { if (item.getClass().getName() .equals(replaceFragmentClass.getName())) { replaceFragment = item; break; } } fragmentTransaction.add(mContainerId, replaceFragment, replaceFragmentClass.getName()); mCurrentFragment = replaceFragment; Log.d(TAG, "changeFragment add " + replaceFragmentClass.getName()); } else { fragmentTransaction.show(replaceFragment); mCurrentFragment = replaceFragment; Log.d(TAG, "changeFragment attach " + replaceFragmentClass.getName()); } fragmentTransaction.commitAllowingStateLoss(); } } }