From 9b71247893510baafbdbd9f89cd4f0120aa397da Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Tue, 28 Oct 2025 18:06:35 +0800 Subject: [PATCH] =?UTF-8?q?font=EF=BC=8C=20maxnum=20=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E6=8E=A7=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visualnovel/ui/chat/ui/FontSetView.kt | 50 ++++++++++ .../visualnovel/ui/chat/ui/MaxNumView.kt | 88 ++++++++++++++++++ .../ui/expandableSelector/ExpandSelectView.kt | 1 + .../main/res/layout/layout_chat_menu_view.xml | 12 ++- .../res/layout/layout_expand_select_view.xml | 1 - .../main/res/layout/layout_font_set_view.xml | 75 +++++++++++++++ .../main/res/layout/layout_max_num_view.xml | 82 +++++++--------- .../res/mipmap-xxhdpi/num_setting_left.webp | Bin 0 -> 1090 bytes .../res/mipmap-xxhdpi/num_setting_right.webp | Bin 0 -> 1094 bytes .../res/mipmap-xxhdpi/setting_font_add.webp | Bin 0 -> 1280 bytes .../res/mipmap-xxhdpi/setting_font_icon.webp | Bin 0 -> 628 bytes .../res/mipmap-xxhdpi/setting_font_plus.webp | Bin 0 -> 1266 bytes .../app/src/main/res/values/strings.xml | 1 + 13 files changed, 261 insertions(+), 49 deletions(-) create mode 100644 VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt create mode 100644 VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/MaxNumView.kt create mode 100644 VisualNovel/app/src/main/res/layout/layout_font_set_view.xml create mode 100644 VisualNovel/app/src/main/res/mipmap-xxhdpi/num_setting_left.webp create mode 100644 VisualNovel/app/src/main/res/mipmap-xxhdpi/num_setting_right.webp create mode 100644 VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_add.webp create mode 100644 VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_icon.webp create mode 100644 VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_plus.webp diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt new file mode 100644 index 0000000..88477da --- /dev/null +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt @@ -0,0 +1,50 @@ +package com.remax.visualnovel.ui.chat.ui + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.LinearLayout +import com.remax.visualnovel.databinding.LayoutFontSetViewBinding + + +class FontSetView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + + companion object { + private var GAP = 1 + } + + private var mBinding: LayoutFontSetViewBinding + + private var mFontValue = 20 + + init { + mBinding = LayoutFontSetViewBinding.inflate(LayoutInflater.from(context), this, true) + setupClickListeners() + } + + + + + private fun setupClickListeners() { + with (mBinding) { + ivFontPlus.setOnClickListener { + mFontValue -= GAP + tvFontValue.text = mFontValue.toString() + } + + ivFontAdd.setOnClickListener { + mFontValue += GAP + tvFontValue.text = mFontValue.toString() + } + + } + } + + + + +} \ No newline at end of file diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/MaxNumView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/MaxNumView.kt new file mode 100644 index 0000000..0847306 --- /dev/null +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/MaxNumView.kt @@ -0,0 +1,88 @@ +package com.remax.visualnovel.ui.chat.ui + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.LinearLayout +import com.remax.visualnovel.databinding.LayoutMaxNumViewBinding + +class MaxNumView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + + companion object { + private var GAP = 100 + } + + private var mBinding: LayoutMaxNumViewBinding + + private var mCurNum = 2500 + + init { + mBinding = LayoutMaxNumViewBinding.inflate(LayoutInflater.from(context), this, true) + setupClickListeners() + } + + + + + private fun setupClickListeners() { + with (mBinding) { + ivLeftIcon.setOnClickListener { + mCurNum -= GAP + tvCenter.text = mCurNum.toString() + } + + ivRightIcon.setOnClickListener { + mCurNum += GAP + tvCenter.text = mCurNum.toString() + } + + } + } + + + + /*override fun onTouchEvent(event: MotionEvent): Boolean { + when (event.action) { + MotionEvent.ACTION_DOWN -> { + val x = event.x + val y = event.y + + if (mBinding..contains(x, y)) { + isLeftPressed = true + startLongPress(false) // 减小 + return true + } else if (rightArrowRect.contains(x, y)) { + isRightPressed = true + startLongPress(true) // 增大 + return true + } + } + + MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> { + stopLongPress() + } + + MotionEvent.ACTION_MOVE -> { + val x = event.x + val y = event.y + + // 如果手指移出按钮区域,停止长按 + if (!leftArrowRect.contains(x, y) && isLeftPressed) { + stopLongPress() + } + if (!rightArrowRect.contains(x, y) && isRightPressed) { + stopLongPress() + } + } + } + + invalidate() + return super.onTouchEvent(event) + }*/ + + +} \ No newline at end of file diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSelectView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSelectView.kt index 9b30504..64998fc 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSelectView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSelectView.kt @@ -36,6 +36,7 @@ class ExpandSelectView @JvmOverloads constructor( private fun initView(context: Context, attrs: AttributeSet?) { mBinding = LayoutExpandSelectViewBinding.inflate(LayoutInflater.from(context), this, true) + mBinding.itemsContainer.setBackgroundResource(R.drawable.bg_expand_view_items) setupAttributes(attrs) setupClickListeners() } diff --git a/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml b/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml index 3b0c932..48623c3 100644 --- a/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml +++ b/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml @@ -193,8 +193,11 @@ android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="10dp" > - - + @@ -213,6 +216,11 @@ android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="10dp" > + diff --git a/VisualNovel/app/src/main/res/layout/layout_expand_select_view.xml b/VisualNovel/app/src/main/res/layout/layout_expand_select_view.xml index 6b0de7f..c22d5b3 100644 --- a/VisualNovel/app/src/main/res/layout/layout_expand_select_view.xml +++ b/VisualNovel/app/src/main/res/layout/layout_expand_select_view.xml @@ -47,7 +47,6 @@ android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="@dimen/dp_2" - android:background="@drawable/bg_expand_view_items" android:visibility="gone"/> \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/layout/layout_font_set_view.xml b/VisualNovel/app/src/main/res/layout/layout_font_set_view.xml new file mode 100644 index 0000000..f1d1893 --- /dev/null +++ b/VisualNovel/app/src/main/res/layout/layout_font_set_view.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/layout/layout_max_num_view.xml b/VisualNovel/app/src/main/res/layout/layout_max_num_view.xml index 6b0de7f..e4a7284 100644 --- a/VisualNovel/app/src/main/res/layout/layout_max_num_view.xml +++ b/VisualNovel/app/src/main/res/layout/layout_max_num_view.xml @@ -1,53 +1,43 @@ - + app:backgroundColorToken="@string/color_chat_setting_item_bg" + app:radiusToken="@string/radius_m" + android:paddingVertical="@dimen/dp_12" + android:paddingHorizontal="@dimen/dp_17" + > - + + + android:layout_toEndOf="@id/iv_left_icon" + android:layout_toStartOf="@+id/iv_right_icon" + android:layout_centerVertical="true" + android:textSize="@dimen/sp_14" + android:textColor="@color/gray6" + android:gravity="center" + android:textStyle="bold" + android:text="2500" + /> - + - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/mipmap-xxhdpi/num_setting_left.webp b/VisualNovel/app/src/main/res/mipmap-xxhdpi/num_setting_left.webp new file mode 100644 index 0000000000000000000000000000000000000000..549f0c81723407c0b3da05287046cda1da95234b GIT binary patch literal 1090 zcmWIYbaS&}VPFV%bqWXzu!!JdU|=u+VjVE@baoCn!3g9sFrEOBEI_H;ypp0IcPE92 z$S4K&2Mmlr2nLDC#RU)+RuZV{+ck*V%eq)q;1}dfNi9wWD)|7!Dn&rcfo>83vPIG% zYz+`Q3BtAkvCB&eN`PttK=2?(*InG6iuTNxN6ZXv`}7BDdI zw=ghlJC6`Ugh@eSQ6ktlU~DijrKK@2d|J-Hz#GZHAbf#=fh!s;2PAN~O#vt+19VqD z5T-NaFr+dlFnBWLF(fnS0a-@CNHt_I1IDnAHxmPcz77MoK=@;=Nh(KI&3jz^=0#++ z(tNHTNpH42#1tzN^_-Lxdj6wr*_So86a86h49l!@Zo5q?o;c<2dnSnnm0}AS3%UL| ze(K+T|Bca`zV5pA?z?@Tf4<4u`siy_;_gD3^VeTLwK<=>d)24UKXWFvCC<41I`sB7 z70*e&mlLEt)lQmC+Twe?^z;A!*UfTor%B)T51kuYs&?=jy9%f0tuP^m28V`8Vg{U{ zt#6%$Jee4#YylE=4U<^-ZhJWid9wUFpmuYW7N@75Cj+|zgTe%rNgNCuEDQ>nlQc3X zamXBCVq|1s0{U9TQD{Q$?OPkojkm3}G7XYmd3QnH8=LR-?EB}vw|UTg2l{`T0S~gFXHLsH`hs#&TWd06{ YwA}Xp?RWY2=eJCmvG?~s@z)9r04zyZH~;_u literal 0 HcmV?d00001 diff --git a/VisualNovel/app/src/main/res/mipmap-xxhdpi/num_setting_right.webp b/VisualNovel/app/src/main/res/mipmap-xxhdpi/num_setting_right.webp new file mode 100644 index 0000000000000000000000000000000000000000..e16f4c86aa514c090566d9e1fa84a81299c0419c GIT binary patch literal 1094 zcmWIYbaS&~VPFV%bqWXzu!!JdU|=u+VjVE@baoCn!3g9sFrEOBEI_H;ypp0IcPE92 z$S4K&2Mmlr2nLDC#RU)+RuZV{+ck*V%eq)q;1}dfNi9wWD)|7!Dn&rcfo>83vPIG% zYz+`Q3BtAkvCB&eN`PttK=2?(*InG6iuTNxN6ZXv`}7BDdI zw=ghlJC6`Ugh@eSQ6ktlU~DijrKK@2d|J-Hz#GZHAbf#=fh!s;2PAN~O#vt+19VqD z5T-NaFr+dlFnBWLF(fnS0a-@CNHt_I1IDnAKNACkz77MoK=@;`ZMmU0pVuBWN_#7<5pnE>N~Ey{Bq~% zr-vREocLLDuWtYIs=d47)>rP03kf}57?XYW`s=4j8&A9~d!4k=BlPS4|C5g-O8ls? z^SeCd{(JMSp+^mPe*XXe`~QFGHpNg^q19d2Zmr^45PMzp$5rFb&{C%I>!mBTCaqXB ziKRhhc@@(tCN)8eE8DKE@>AvX4A`&2G@XmV-~rnzv(Bu^KDLv21Q;YPsH|WD`jUxB zty7DEA%Nil3n*CwV{gGEmJ{1@-`*cdH|A)jvPFS$px;A2*(NbgVCa99nUDcSq^3!tYNaSkJg0IdUXxk zzM}Nf>zfO8md$fd;rh;}_FZC!*u|(D30}{ui%Nb~Pr4^}BJo+U@hqN~A$+&*xlEc? zbmP0?NqhYzJ0AON`+2o*)#Y<}N8X*e{p9qw zHOc<$85w@Wp8@6=0A=)Ni2wiq literal 0 HcmV?d00001 diff --git a/VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_add.webp b/VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_add.webp new file mode 100644 index 0000000000000000000000000000000000000000..ed2a311e43be5a28366261a18eacdfaabef9ba17 GIT binary patch literal 1280 zcmWIYbaVT`!oU#j>J$(bU=hK^z`$St#MWTs>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9z}R45N=sv4__UmXfj5$YLHGg#16MRy4oKi|n*vZu2I#JQ zAWUb-VMt|AVDMzfV@PJu1G0>Ok!r|b28>}JE@lP>ed_~!0`)AGn{q?1-unJ%5~DMd zqG^)~(_gdVopYwTo!NhQTQ0MuxYoAFWuVe%?p?2ZMng8`@-SNtg#&|jB#tS zmWhby)qR{=!Wb}t!~YSBqlT-Y!lj-=jEBUPS9u=QV$d;jJF2jjr6aJx6%^JgYzl9; zvX{RGvct&A)anHHbv_H znJX_Mlan9+oO15}pJpi=FU_S>f`G)KuHrnKsxL1tE_S!xb+tjx+TMNd?Z?>#hR=dL zFWp)vNPDVe_}`u^U7UvC~^f5<=Y+-a}7Umx7EtMUHP?BBb$c+)5E>93BTy}Qhg@Ac7( zlH23bn_nKzY?JjrSm)@Lc6^cLW&iEI^38`f_Pps|bMQ;M?t z#r->@^{(yZowYluaH?B_&+P|??>o<)FRAnEzD_5@%o#GT4?o=)n4F%;qTy9}@_g^! zMaO!ss|qUce{Xu+Em{fz!TwWR8gy=N0(*Z-&?#BQU!}`dUEk`;IdwzTInjQGyW8v6 zb^Ft9|NS!uPFP!z*Wcu1{i#2r=1a z$6uyDJ!FGqiH4jN_a@U*cV$C8(+~fym=U-pD7I%y$d{G-rE9;5b}@LzA3J8XaFPFc z=84wA-A9gJTkrTbMbz!H^80Jz3m%3U{0<8JU#xhv!g7g2>z!*iOcidJEs|Q=+UuD4 O7?jaT0{?>3Y#0D<)T4a> literal 0 HcmV?d00001 diff --git a/VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_icon.webp b/VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..fa21373054653eae874abad093059759eb1dfc4e GIT binary patch literal 628 zcmWIYbaTsLVqge&bqWXzu!!JdU|=u+VmmPMbaoCn!3g9sFrEOBEI_H;ypp0IcPE92 z$S4K&2Mmlr2nLDC#RU)+RuZV{+ck*V%eq)q;1}dfNi9wWD)|7!Dn&rcfo>83vPIG% zYz+`Q3BtAkvCB&eN`PttK=2?(*InG6iuTNxN6ZXv`}7BDdI zw=ghlJC6`Ugh@eSQ6ktl79h!#md3#FX*mM}ZzKbQ@C612u4u3vkig+K1)!7+&|UdJ zn9h*HkjkLI;K`83kj$V5WElY?)sVpq7{fkwK!y5t4g3P)3IZO9+PVlrL8I#2mxljZ z23;ziUdO5;gkL23EMT%UFx#0wPw;Q}?QOh^4fonH0`+4D4$^{xfzx?r&YXGn>zZA? fckkr7T6pR&pWih7_og%7izBSp?)vb1!Fm<|foXCw literal 0 HcmV?d00001 diff --git a/VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_plus.webp b/VisualNovel/app/src/main/res/mipmap-xxhdpi/setting_font_plus.webp new file mode 100644 index 0000000000000000000000000000000000000000..841f2e0ab34a1e02275765bf9a05595cb11cf14e GIT binary patch literal 1266 zcmWIYbaQ*f!oU#j>J$(bU=hK^z`$St#MWTs>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9z}R45N=sv4__UmXfj5$YLHGg#16MRy4oKi|n*vZu2I#JQ zAWUb-VMt|AVDMzfV@PJu1G0>Ok!r|b28>~!KTHe^`ql^d1j?W6n5g16^$oz6=vR<@npXA&Vam}jf`f8<>t-ZAUw&jK|MQF zO+{zUpC{ZmIUNppRJff}5K#1F>)BAy@ZqF{_GHy;#)OSV(|9(SGNtGoPy!}31~)c^ z*W0!xN2hK3d-LYD*TH4-n{sdO`d_^G_0i(`bXnIg_Zw9_bB$X!rSQLO(1!&Nwde~s z5n$&0DM4PEOQ!^Bt=aM7-RI}$=iArs%fBIDko3QQ#rFku9D2`U^iSS8-s>Eo%xyPq z+Ub=ie_F;Z^O?UT<$hYd=Hd6XH!VZ98NK&CvFGfb(0!^oC(hjBfB4T$SX+%HEv0U@d`owH=X-U*yHz4dl}Adw7oM!+VtD=E{3P7^(B2>QnK=!+!~G_{P=d)EC{$( zY^i);7S!vfWEqd~E?af^*`gM=2;1;3_lAen^&zf0Kc}|N{J7n1mD06}@P`~5eq?{B zHoR~h0m_Y+-TvHFWN_o}E7{PvWiM-c7__^NT{A!U?(Qlsv&nu(4ktL4x$kt}to1VI zw-CSVQK_q2J^Wqg-*UhB++!ifhF`I7*6@nfy2*9h=SJ$&{{TwQx+go!ls$tjf qgKyG9AD_P}^7!c#Cf*|d83J!+2KHY1WD$PDP82gG{NUfg#Q*>UUz@i8 literal 0 HcmV?d00001 diff --git a/VisualNovel/app/src/main/res/values/strings.xml b/VisualNovel/app/src/main/res/values/strings.xml index b34a6a7..2f0b91b 100644 --- a/VisualNovel/app/src/main/res/values/strings.xml +++ b/VisualNovel/app/src/main/res/values/strings.xml @@ -479,5 +479,6 @@ Short Text Mode Play dialogue only Maximum number of response tokens + Font Size \ No newline at end of file