日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android新闻类导航栏

發布時間:2025/4/5 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android新闻类导航栏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個新聞導航欄,可以自定義文字顏色、選中文字和未選中文字大小、文字間距、拖拽效果等效果。


一、先上效果圖(A、B)

二、GitHub

代碼地址,歡迎指正 https://github.com/MNXP/FlexTitle

三、A的使用

1)A的引用

<com.xp.different.ViewPagerTitleandroid:id="@+id/pager_title"flexTitle:background_content_color="@android:color/white"flexTitle:line_start_color="@android:color/holo_red_dark"flexTitle:line_end_color="@android:color/holo_blue_light"flexTitle:line_height="5dp"flexTitle:line_bottom_margins="10dp"flexTitle:item_top_margins="10dp"flexTitle:item_bottom_margins="8dp"flexTitle:item_margins="40dp"flexTitle:selected_text_Size="16sp"flexTitle:default_text_size="14sp"flexTitle:selected_text_color="@android:color/holo_orange_dark"flexTitle:title_center="false"flexTitle:line_drag="true"flexTitle:line_margins="5dp"android:layout_width="match_parent"android:layout_height="wrap_content"/> 復制代碼

2)A的自定義

<declare-styleable name="FlexTitle"><attr name="default_text_size" format="dimension" /> <attr name="selected_text_Size" format="dimension" />//選中文字大小<attr name="default_text_color" format="color" />//未選擇文字顏色<attr name="selected_text_color" format="color" />//選擇文字顏色<attr name="background_content_color" format="color" />//背景顏色<attr name="line_start_color" format="color" />//線 起始顏色<attr name="line_end_color" format="color" />//線 終止顏色<attr name="line_margins" format="dimension" />//線的間距<attr name="item_margins" format="dimension" />//item間距<attr name="item_top_margins" format="dimension" />//據上高度<attr name="item_bottom_margins" format="dimension" />//距下高度<attr name="line_bottom_margins" format="dimension" />//線 距下高度<attr name="line_height" format="dimension" />// 線的高度<attr name="title_center" format="boolean" />//文字是否左右均留空隙<attr name="line_drag" format="boolean" />//線是否有拖拽效果</declare-styleable> 復制代碼

3)A的實現

根據titleCenter和lineDrag來判斷線的起始點和終點繪制 if (titleCenter) {if (lineDrag) {if (lastPosition > position) {for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i < lastPosition; i++) {rightAll = rightAll + getDefaultWidth(i);}left = leftAll + (position * 2 + 1) * dis + positionOffset * (getDefaultWidth(position) + 2 * dis) + lineMargins;right = rightAll + (lastPosition * 2 + 1) * dis + getDefaultWidth(lastPosition) + lineMargins;dynamicLine.updateView(left, right);} else {if (positionOffset > 0.5f) {positionOffset = 0.5f;}for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i <= position; i++) {rightAll = rightAll + getDefaultWidth(i);}left = leftAll + (position * 2 + 1) * dis + lineMargins;right = rightAll + (position * 2 + 1) * dis + lineMargins + positionOffset * 2 * (getDefaultWidth(position + 1) + 2 * dis);dynamicLine.updateView(left, right);}} else {if (lastPosition > position) {for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i < lastPosition; i++) {rightAll = rightAll + getDefaultWidth(i);}left = leftAll + (position + positionOffset) * 2 * dis + dis + lineMargins + positionOffset * (lastWidth - lastDis);right = rightAll + (position + positionOffset) * 2 * dis + dis + lineMargins + positionOffset * lastWidth;dynamicLine.updateView(left, right);} else {for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i <= position; i++) {rightAll = rightAll + getDefaultWidth(i);}left = dis + leftAll + position * 2 * dis + lineMargins + positionOffset * 2 * dis + positionOffset * (lastWidth - lastDis);right = dis + rightAll + position * 2 * dis + lineMargins + positionOffset * 2 * dis + positionOffset * lastWidth;dynamicLine.updateView(left, right);}}} else {if (lineDrag) {if (lastPosition > position) {for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i < lastPosition; i++) {rightAll = rightAll + getDefaultWidth(i);}left = leftAll + (position + 1) * dis + positionOffset * (getDefaultWidth(position) + dis) + lineMargins;right = rightAll + (lastPosition + 1) * dis + getDefaultWidth(lastPosition) + lineMargins;dynamicLine.updateView(left, right);} else {if (positionOffset > 0.5f) {positionOffset = 0.5f;}for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i <= position; i++) {rightAll = rightAll + getDefaultWidth(i);}left = leftAll + (position + 1) * dis + lineMargins;right = rightAll + (position + 1) * dis + lineMargins + positionOffset * 2 * (getDefaultWidth(position + 1) + dis);dynamicLine.updateView(left, right);}} else {if (lastPosition > position) {for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i < lastPosition; i++) {rightAll = rightAll + getDefaultWidth(i);}left = leftAll + (position + positionOffset) * dis + dis + lineMargins + positionOffset * (lastWidth - lastDis);right = rightAll + (position + positionOffset) * dis + dis + lineMargins + positionOffset * lastWidth;dynamicLine.updateView(left, right);} else {for (int i = 0; i < position; i++) {leftAll = leftAll + getDefaultWidth(i);}for (int i = 0; i <= position; i++) {rightAll = rightAll + getDefaultWidth(i);}left = dis + leftAll + position * dis + lineMargins + positionOffset * dis + positionOffset * (lastWidth - lastDis);right = dis + rightAll + position * dis + lineMargins + positionOffset * dis + positionOffset * lastWidth;dynamicLine.updateView(left, right);}}} 通過判斷,進行不同的邏輯處理(代碼位置com.xp.different.MyOnPageChangeListener) 復制代碼

四、B的使用

這種是借鑒的,如有侵犯,請聯系,會及時刪除

1)B的引用

<com.xp.shadow.ShadowTabandroid:id="@+id/indicator"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#11000000"flexTitle:item_padding="15dp"flexTitle:text_size="16sp"flexTitle:default_color="#000000"flexTitle:changed_color="#ff0000"/> 復制代碼

2)B的自定義

<declare-styleable name="ShadowTab"><attr name="text_size"/><attr name="default_color"/><attr name="changed_color"/><attr name="item_padding_l" format="dimension"/><attr name="item_padding_r" format="dimension"/><attr name="item_padding_t" format="dimension"/><attr name="item_padding_b" format="dimension"/><attr name="item_padding" format="dimension"/><attr name="line_start_colors" format="color" />//線 起始顏色<attr name="line_end_colors" format="color" />//線 終止顏色<attr name="line_heights" format="dimension" />// 線的高度<attr name="line_bottom_margin" format="dimension" />//線 距下高度</declare-styleable> 復制代碼

3)B的實現

根據位置繪制文字和線//畫正常的文字內容paint.setTextSize(textSize);Paint.FontMetrics fontMetrics = paint.getFontMetrics();canvas.save();paint.setColor(defaultColor);canvas.drawText(text, textLeft, textBottom - fontMetrics.descent, paint);canvas.restore();//畫漸變部分的文字canvas.save();paint.setColor(changeColor);canvas.clipRect(startX, 0, endX, getMeasuredHeight());canvas.drawText(text, textLeft, textBottom - fontMetrics.descent, paint);canvas.restore(); (代碼位置com.xp.shadow.ShadowTextView) 復制代碼

初次嘗試,海涵。如有意見和建議,及時溝通。

轉載于:https://juejin.im/post/5a952633f265da4e8700f709

總結

以上是生活随笔為你收集整理的Android新闻类导航栏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人久久一区 | 亚洲一级色 | 成人无码www在线看免费 | 五月天六月婷 | 在线免费观看视频黄 | 中文字幕有码无码人妻av蜜桃 | 亚洲精品一区二区二区 | a爱视频| 91网址在线播放 | 日韩制服在线 | 在线看一级片 | 亚日韩欧美 | 日韩性在线 | 欧洲亚洲成人 | 日本欧美视频 | 亚洲美女屁股眼交 | 国产白丝一区二区三区 | 91在线免费观看网站 | 深夜视频在线观看免费 | 九九久久精品 | 无码av免费精品一区二区三区 | 欧美xxxx胸大| 波多野结衣一区二区三区高清 | 免费国产一级 | 成人免费视频一区二区 | 嫩草影院懂你的 | 谁有毛片网站 | 自拍偷拍亚洲图片 | 精品一区二区三区在线观看视频 | 久久精品亚洲无码 | 亚洲图片一区二区三区 | 在线观看网站黄 | 久久人人爽 | 天天有av| 在线免费观看亚洲视频 | 美女隐私免费观看 | 久久系列 | 2一3sex性hd| 久久精品国产一区二区电影 | jlzzjlzz亚洲日本少妇 | 午夜在线小视频 | 久久久久国产精品无码免费看 | 爱视频福利网 | 山村淫强伦寡妇 | 性xxxx另类xxⅹ | 成人蜜桃视频 | 亚洲国产清纯 | 轻轻色在线观看 | 日本午夜视频在线观看 | 一个人免费在线观看视频 | www日本免费 | 一级特黄欧美 | 日本亲与子乱xxx | 国产在线拍揄自揄拍 | 快色在线观看 | 日韩少妇毛片 | 欧美videossex极品 | 黄色av中文字幕 | 在线看片中文字幕 | 天天人人精品 | 日本在线视频一区 | 亚洲人无码成www久久 | 日韩欧美精品免费 | 佐山爱在线视频 | 国产美女激情视频 | 激情欧美一区二区三区精品 | 青青艹av | 99久久精品免费视频 | 蜜桃精品久久久久久久免费影院 | 三上悠亚影音先锋 | 国产一区二区毛片 | 黄色va | 国产免费一区二区视频 | 亚洲自啪 | 国内精品国产成人国产三级 | 迈开腿让我尝尝你的小草莓 | 黄色免费国产 | 亚洲码国产精品高潮在线 | 久久久久久久亚洲 | 国产精品电影一区二区 | 色又黄又爽 | 成人免费视频a | 91丨九色丨蝌蚪丨老版 | 黄网站免费在线 | 99热这里只有精品4 精品国产黄色 | 69xx网站 | 欧美操穴| 久草免费在线色站 | 国产福利网站 | 亚洲美女在线播放 | 国模大尺度视频 | av网在线播放 | 黄片毛片在线免费观看 | 国产一级二级三级视频 | 青青草免费在线观看视频 | 日本国产一区 | 日本天堂在线播放 | 一区二区三区欧美在线 | 四虎影院成人 |