diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java index 2a080780..b7650924 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java @@ -38,6 +38,7 @@ import com.xscm.modulemain.activity.user.conacts.DailyTasksConacts; import com.xscm.modulemain.activity.user.presenter.DailyTasksPresenter; import com.xscm.modulemain.BaseMvpActivity; import com.xscm.modulemain.activity.WebViewActivity; +import com.xscm.modulemain.dialog.DialogLuckyDraw; import com.xscm.modulemain.dialog.SignInDialog; import com.xscm.modulemain.manager.RoomManager; import com.xscm.moduleutil.base.CommonAppContext; @@ -205,6 +206,13 @@ public class DailyTasksActivity extends BaseMvpActivity { + parent.requestDisallowInterceptTouchEvent(true) + lastRawX = event.rawX + lastRawY = event.rawY + isDragging = false + return true + } + + MotionEvent.ACTION_MOVE -> { + val dx = event.rawX - lastRawX + val dy = event.rawY - lastRawY + + if (!isDragging) { + if (abs(dx) > touchSlop || abs(dy) > touchSlop) { + isDragging = true + } else return true + } + + val parentView = parent as? View ?: return true + + var newX = x + dx + var newY = y + dy + + newX = min( + max(0f, newX), + parentView.width - width.toFloat() + ) + newY = min( + max(0f, newY), + parentView.height - height.toFloat() + ) + + x = newX + y = newY + + lastRawX = event.rawX + lastRawY = event.rawY + } + + MotionEvent.ACTION_UP, + MotionEvent.ACTION_CANCEL -> { + parent.requestDisallowInterceptTouchEvent(false) + if (isDragging) { + adsorbToEdge() + } else { + performClick() + } + } + } + return true + } + + override fun performClick(): Boolean { + return super.performClick() + } + + /** + * 吸附左右边 + */ + private fun adsorbToEdge() { + val parentView = parent as? View ?: return + val parentWidth = parentView.width + val centerX = x + width / 2 + + val targetX = if (centerX < parentWidth / 2) { + 0f + } else { + parentWidth - width.toFloat() + } + + ViewCompat.animate(this) + .x(targetX) + .setDuration(250) + .start() + } + + // ===================== 对外 API ===================== + + fun setText(text: CharSequence) { + textView.text = text + } + + fun setTextGravity(gravity: Int) { + (textView.layoutParams as LayoutParams).gravity = gravity + textView.requestLayout() + } + + // ===================== 工具 ===================== + + private fun sp2px(sp: Float): Float { + return sp * resources.displayMetrics.scaledDensity + } + + private fun px2sp(px: Float): Float { + return px / resources.displayMetrics.scaledDensity + } +} \ No newline at end of file diff --git a/MainModule/src/main/res/drawable/bg_left_50.xml b/MainModule/src/main/res/drawable/bg_left_50.xml new file mode 100644 index 00000000..646af05b --- /dev/null +++ b/MainModule/src/main/res/drawable/bg_left_50.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/MainModule/src/main/res/drawable/bg_right_50.xml b/MainModule/src/main/res/drawable/bg_right_50.xml new file mode 100644 index 00000000..6276fd45 --- /dev/null +++ b/MainModule/src/main/res/drawable/bg_right_50.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/MainModule/src/main/res/layout/activity_daily_tasks.xml b/MainModule/src/main/res/layout/activity_daily_tasks.xml index f4a5aff5..d3ce8e0a 100644 --- a/MainModule/src/main/res/layout/activity_daily_tasks.xml +++ b/MainModule/src/main/res/layout/activity_daily_tasks.xml @@ -20,9 +20,9 @@ app:layout_constraintTop_toTopOf="parent" /> @@ -80,9 +80,9 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="@dimen/dp_12" + android:layout_marginBottom="@dimen/dp_10" android:background="@drawable/bg_r16_fff" android:backgroundTint="@color/transparent" - android:layout_marginBottom="@dimen/dp_10" android:orientation="vertical"> @@ -141,6 +141,22 @@ app:loading_renderer="CoolWaitLoadingRenderer" /> + + + \ No newline at end of file diff --git a/MainModule/src/main/res/layout/dialog_list_item_layout.xml b/MainModule/src/main/res/layout/dialog_list_item_layout.xml new file mode 100644 index 00000000..5ba3313a --- /dev/null +++ b/MainModule/src/main/res/layout/dialog_list_item_layout.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + diff --git a/MainModule/src/main/res/layout/dialog_lucky_draw_layout.xml b/MainModule/src/main/res/layout/dialog_lucky_draw_layout.xml index 08506f2f..720546b9 100644 --- a/MainModule/src/main/res/layout/dialog_lucky_draw_layout.xml +++ b/MainModule/src/main/res/layout/dialog_lucky_draw_layout.xml @@ -6,9 +6,23 @@ + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -158,18 +317,18 @@ + app:layout_constraintBottom_toTopOf="@id/ll_btn" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/guide_line_1" + app:spanCount="3" + tools:listitem="@layout/item_lottery_gift_layout" /> diff --git a/MainModule/src/main/res/layout/item_lottery_gift_layout.xml b/MainModule/src/main/res/layout/item_lottery_gift_layout.xml index b72c44c6..d0bb39d1 100644 --- a/MainModule/src/main/res/layout/item_lottery_gift_layout.xml +++ b/MainModule/src/main/res/layout/item_lottery_gift_layout.xml @@ -31,7 +31,6 @@ android:textSize="@dimen/sp_14" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/iv_glod" /> + app:layout_constraintStart_toStartOf="parent" /> \ No newline at end of file diff --git a/MainModule/src/main/res/mipmap-hdpi/icon_shuijing.png b/MainModule/src/main/res/mipmap-hdpi/icon_shuijing.png new file mode 100644 index 00000000..f3313c55 Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/icon_shuijing.png differ diff --git a/MainModule/src/main/res/mipmap-hdpi/icon_xuyuanka.png b/MainModule/src/main/res/mipmap-hdpi/icon_xuyuanka.png new file mode 100644 index 00000000..68a3eced Binary files /dev/null and b/MainModule/src/main/res/mipmap-hdpi/icon_xuyuanka.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/icon_shuijing.png b/MainModule/src/main/res/mipmap-xhdpi/icon_shuijing.png new file mode 100644 index 00000000..4a06179a Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/icon_shuijing.png differ diff --git a/MainModule/src/main/res/mipmap-xhdpi/icon_xuyuanka.png b/MainModule/src/main/res/mipmap-xhdpi/icon_xuyuanka.png new file mode 100644 index 00000000..4ab8ce97 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xhdpi/icon_xuyuanka.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/icon_shuijing.png b/MainModule/src/main/res/mipmap-xxhdpi/icon_shuijing.png new file mode 100644 index 00000000..0b05baa3 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/icon_shuijing.png differ diff --git a/MainModule/src/main/res/mipmap-xxhdpi/icon_xuyuanka.png b/MainModule/src/main/res/mipmap-xxhdpi/icon_xuyuanka.png new file mode 100644 index 00000000..2b099688 Binary files /dev/null and b/MainModule/src/main/res/mipmap-xxhdpi/icon_xuyuanka.png differ diff --git a/MainModule/src/main/res/values/style.xml b/MainModule/src/main/res/values/style.xml index 0d2c4cc4..ff574eeb 100644 --- a/MainModule/src/main/res/values/style.xml +++ b/MainModule/src/main/res/values/style.xml @@ -1,4 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file