當前位置:首頁 » 安卓系統 » androidno18

androidno18

發布時間: 2023-03-10 04:25:08

『壹』 android中常用的資源有哪些

Android 資源類型
1.字元串資源

>>1.普通字元串
>>2.字元串數組

復制代碼
<resources>
<string-array name="planets_array">
<item>aaa</item>
<item>bbb</item>
</string-array>
</resources>
復制代碼
獲取方式:getResources().getStringArray(R.array.planets_array)
>>3.復數字元串資源
某些自然語言中,不同的數字在使用方法上會有所不同,比如one book,two books。當數量大於1時,會使用不同的名詞或其它復數形式;

復制代碼
<resources>
<plurals name="numberOfp">
<item quantity="one">one person</item>
<item quantity="other">more persons</item>
</plurals>
</resources>
復制代碼
quantity屬性的值除了one和other外,還可以是zero,two,few,many;
引用復數字元串:
// 引用數字為1的復數字元串
getResources().getQuantityString(R.pluarlas.numberOfp,1);
// 引用數字為其它值的復數字元串
getResources().getQuantityString(R.pluarlas.numberOfp,10,10);
>>4.佔位符格式化字元串
常用的格式化字元串三種方法:
>>1.在字元串中使用引號
字元串中的值雖然可以隨意指定,但是當遇到特殊符號時(雙引號,單引號)就需要採取特殊的方法來處理這些符號。
如果是單引號(')可以使用轉義符(\)或用雙引號(")將整個字元串括起來,如果是雙引號,可以在雙引號前使用轉義符(\)。

<resources>
<string name="str1">"This'll work"</string> This'll work
<string name="str2">This\'ll work</string> This'll work
<string name="str3">\"apple\"</string> "apple"
</resources>
>>2.用佔位符格式化字元串
使用String.format(String,Object...)方法可以格式化帶佔位符的字元串,只需要在字元串中插入佔位符,就可以使用String.format方法格式化字元串資源,format方法要求的佔位符用%1,%,...,%n,其實第n個佔位符與format方法的n+1個參數值對應;

<resources>
<!-- $s表示該佔位符被字元串替換,$d表示該佔位符被整數替換 -->
<string name="str1">hello,%1$s!You have %2$d new message</string>
</resources>
String str1 =String.format(getResources().getString(R.string.str1), "ly", 17);
>>3.使用HTML標簽格式化字元串資源

字元串資源支持一些HTML標簽,因此可以直接在字元串資源中使用這些HTML標簽格式化字元串
字元串資源支持如下的HTML標簽
<b>粗體字
<i>斜體定
<u>帶下劃線的字
有時需要同時使用HTML標簽和佔位符格式化字元串,如果使用String.format方法格式化字元串,會忽略字元串中的所有HTML標簽。為了使format方法可以格式化帶
HTML標簽的確字元,需要使用Html.formHTML方法處理字元串;

<resources>
<string name="hello_world">Welcome to <b>android</b></string>
<string name="str2">Hello,%1$s! You have <b> %2d new messages </b></string> <!--同時包含佔位符和html標簽的字元串-->
</resources>
由於需要使用Html.formHTML方法處理字元串,因此HTML標簽中的 "<" 需要使用 "<" 表示 ">" 並不需要處理
獲取字元串:

String text = String.format(getResources().getString(R.string.str2), "ly", 10);
CharSequence styledText = Html.fromHtml(text);
// 如果format的某個參數包含HTML的特殊字元,如"<","&",可以使用如下方式讀取字元串的值;
String escapedUsername = TextUtils.htmlEncode("");
String text1 = String.format(getResources().getString(R.string.str2), "ly", 20);
2.Layout資源
1、如果根節點是View,除了<requestFocus>標簽外,不能添加任何子標簽,<requestFocus>可能被添加到布局文件的任何View中,表示該標簽對應的控制項在顯示時處於焦點狀態,整個布局文件只能有一個<requestFocus>標簽
2、根節點是ViewGroup,常用的布局都是ViewGroup的子類
3、重用布局文件
如果想重用某個布局文件,可以使用<include>標簽
<include layout="@layout/xx_layout" />
如果想讓一個布局文件被另一個布局文件引用(使用<include>標簽),可以使用<merge>作為被引用布局文件的根節點,由於<merge>並不會生成任何標簽(在大量引用布局文件時不至於生成大量無用的標簽),但是xml文件必須要有一個根節點,因此<merge>所起的作用就是作為xml文件的根節點,以使xml文件在編譯時不至於出錯,可以把<merge>當成<FrameLayout>使用;

3.圖像資源
在圖像資源中可以存儲圖像文件,還可以使用xml格式的圖像資源來控制項圖像的狀態和行為;
>>1.普通圖像資源
Drawable da = getResources().getDrawable(R.drawable.xxx);

>>2.xml圖像資源
xml圖像資源其實就是在drawable目錄中指定的xml文件,此種方式可以額外指定圖像的某些屬性,如圖像拉動、排列方式;

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_launcher"
android:tileMode="repeat" >
</bitmap>
>>3.Nine-Patch圖像資源
Nine-Patch圖像資源文件必須以9.png作為文件擴展名,如abc.9.png
該圖像資源的主要作用是:防止圖像的某一部分被拉伸;確定將圖像作為背景圖的控制項中內容顯示的位置;
Android SDK本身提供了一個Draw 9-patch的工具,啟動<sdk目錄>\tools\draw9patch.bat命令啟動該工具;
可以通過此工具在png圖的四周繪制1個像素粗的直線,上邊緣和左邊緣的直線分別表示圖像在水平和垂直方向可位值的范圍。如果水平或垂直方向的某個區域不需要拉伸,則可不繪制相應的直線;右邊緣和下邊緣的直線分別表示圖像所在控制項中內容的顯示範圍,內容只在右邊緣和下邊緣繪制直線的區域顯示,表示內容顯示範圍和拉伸范圍的兩給直線有一個重要區別就是表示內容顯示範圍的直線中間不能斷開,而表示拉伸范圍的直線中間可以斷開;
Nine-Patch圖像資源與普通圖像資源引用方法相同,在引用時只寫文件名,活力.9.png;

>>4.XML Nine-Patch圖像資源
Nine-Patch圖像資源也有與其對應的xml圖像資源,使用<nine-patch>標簽來引用Nine-Patch格式的圖像,有一個設置抖動的android:dither屬性;

>>5.圖層資源
圖層資源類似於<FrameLayout>不同的是<FrameLayout>標簽中可以包含任意的控制項,而圖層資源每一層都只有是圖像,定義圖層資源必須使用<layer-list>作為資源文件的根節點,<layer-list>標簽中包含多個<item>標簽,每一個標簽表示一個圖像,最後一個<item>標簽顯示在最頂層;
默認情況下,圖像會盡量充滿顯示圖像的范圍,圖像可能會有拉伸,為了避免圖像拉伸,可以在<item>標簽中使用<bitmap>標簽引用圖像;

復制代碼
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="10dip" 底端偏移的像素
android:left="10dip" 左側偏移的像素
android:right="10dip" ...
android:top="10dip"> ...
<bitmap
android:gravity="center"
android:src="@drawable/hell" />
</item>
</layer-list>
復制代碼
某些情況下,可以使用圖層來代替<FrameLayout>

>>6.圖像狀態資源,處理控制項不同狀態下的顯示狀態

復制代碼
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bm" android:state_focused="true"></item>
<item android:drawable="@drawable/bm" android:state_pressed="true"></item>
<item android:drawable="@drawable/bm"></item>
</selector>
// android:state_focused/pressed設置為true表示當前item的drawable屬性為獲取焦點和按下時的drawable樣式
復制代碼
>>7.圖像級別(Level)資源
圖像資源狀態只能指定幾種有限的狀態,可以通過圖像級別指定更多的狀態;圖像級別是一個整數的區間,可以通過ImageView.setImageLevel或Drawable.setLevel方法切換不同狀態的圖像;圖像級別資源是xml文件,必須以<level-list>為根節點,每一個item表示一個級別區間,下面是一個xml文件;通過ImageView.setImageLevel(level),根據level所在的區間設定顯示的圖像資源,如果level不在任一區間內則清空ImageView當前圖像;

<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="2" android:minLevel="0" android:drawable="@drawable/hell" />
<item android:maxLevel="4" android:minLevel="3" android:drawable="@drawable/hell" />
</level-list>
>>8.淡入淡出(Cross-fade)資源
也是切換兩個圖像(不支持多於兩個圖像的切換),並且使這兩個圖像以淡入淡出效果進行切換,如電燈在開關時逐漸變亮或逐漸變暗;

<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/hell"/>
<item android:drawable="@drawable/hell"/>
</transition>

TransitionDrawable da = ...;
// 從第一張圖片切換到第二張圖片,時間效果為1秒
da.startTransition(1000);
// 從第二張圖片切換到第一張圖片,時間效果為1秒
da.reverseTransition(1000);
>>9.嵌入(insert)圖像資源
使用場景:要顯示的圖像要求要小於裝載圖像的View(圖小於View區域),也是通過xml資源定義,只有一個節點inset。

<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/hell"
android:insetLeft="10dip" > <!--圖像距離左邊的距離,延伸-->上/下/右的距離-->
</inset>
>>10.剪切(Clip)圖像資源,使用剪切圖像資源可以只顯示圖像的一部分,如可以通過此來製作進度條;

<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="horizontal" // 指定截取的方向
android:drawable="@drawable/hell" // 指定要截取的圖像
android:gravity="left" > // 指定截取的方式,在此為從左側開始截取
</clip>
ClipDrawable cd = ...;
cd.setLevel(1000);
上面ClipDrawable.setLevel(level)設置截取的圖像寬度,ClipDrawable預設了最大值10000(表示不進行截取),最小值為0(表示不顯示);

>>11. 比例(Scale)圖像資源

<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/hell"
android:scaleGravity="center" // 設置圖像顯示的位置
android:scaleHeight="70%" // 設置圖像顯示的高度
android:scaleWidth="80%" > // 設置圖像顯示的寬度
</scale>
>>12.形狀資源

復制代碼
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" > shape可以指定就矩形,oval(橢圓),line(直線),ring(圓)
<corners> 定義圓角
</corners>
<gradient
android:angle="45"
android:startColor="#000000"
android:endColor="#FFFFFF" > 定義顏色漸變,從左下角到或上角
</gradient>
<padding> 定義控制項內容到邊框的距離
</padding>
<stroke> 定義邊線
</stroke>
<solid> 定義填充
</solid>
<size> 定義大小
</size>
</shape>
復制代碼
13.菜單資源
菜單不僅可以在onCreateContextMenu或onCreateOptionsMenu方法中通過代碼創建,還可以在res/menu目錄中建立相應的菜單資源文件,並在上面兩個方法中載入菜單資源;
菜單資源文件必須以<menu>標簽作為根節點,每一個菜單項用一個<item>表示,如果要定義子菜單,可以在<item>標簽中包含<menu>標簽;如果想將多個菜單項劃為一組,可以使用<group>包含多個<item>標簽;

復制代碼
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
復制代碼
查看MenuInflater.inflate(int,Menu)

復制代碼
/**
* Inflate a menu hierarchy from the specified XML resource.
*
* @param menuRes Resource ID for an XML layout resource to load (e.g., <code>R.menu.main_activity</code>)
* @param menu The Menu to inflate into. The items and submenus will be added to this Menu.
*/
public void inflate(int menuRes, Menu menu) {
XmlResourceParser parser = null;
try {
parser = mContext.getResources().getLayout(menuRes);
AttributeSet attrs = Xml.asAttributeSet(parser);

parseMenu(parser, attrs, menu);
} catch ...finally {
if (parser != null) parser.close();
}
}
復制代碼
14.樣式與主題(style/theme)
>>1.樣式style
android中樣式和css中樣式作用是一樣的,都是用於為界面元素定義顯示風格,它是一個包含一個或者多個控制項屬性的集合。
定義樣式需要在res/values/styles.xml中進行定義,如下是一個樣式的定義:

<style name="textViewStyle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="textViewStyle1" parent="textViewStyle"></style><!-- 此樣式繼承自textViewStyle -->
<style name="textViewStyle.Livingstone"><!-- 樣式繼承的另一種寫法,但不可用此寫法繼承Android自帶的定義樣式? -->
<item name="android:textColor">#00FF00</item>
</style>
所有定義的樣式都會在R文件中自動生成一個資源ID,加一個點表示樣式繼承會生成上圖所示的資源id;

樣式的引用:

<TextView
style="@style/textViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello" />
>>2.主題Theme
主題應用於整個應用或者activity,樣式應用於具體的控制項上。主題的應用與樣式定義一樣,不同的是主題還可以設置窗口的顯示風格;主題的引用需要在清單文件中進行引用,如引用到整個應用之上就需要在Application節點中進行配置引用,而引用到單個Activity只需要在此Activity中進行配置引用;

復制代碼
<style name="Livingstonetheme"><!--此定義是一個無Title的主題-->
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item>
<!-- 問號表示引用此主題中android:windowNoTitle屬性的值 -->
<item name="android:textSize">18sp</item>
</style>
復制代碼
android系統定義了一些屬性,如android:theme="@android:style/Theme.Dialog",該主題可以讓Activity看起來像一個對話框,更多主題可以在文檔reference->android->R.style中查看。當主題裡面的樣式屬性值與樣式裡面的屬性值發生沖突的時候會顯示樣式裡面的值;

15.其它資源
在資源文件中還可以包括尺寸(dimen)、整數(integer)、布爾(bool) 、整形數組資源(integer-array)、資源數組(array)、顏色(color)

TypedArray ta = getResources().obtainTypedArray(int id); // 獲取數組資源,包括integer-array、array
Final總結:
除了res/values目錄中的資源名,其它目錄的資源都會以文件名在R類的相應子類中生成變數;而res/values中的資源會以name屬性值為變數名在R類的相應子類中生成變數;

『貳』 32個實用酷炫的Android開源UI框架

1.Side-Menu.Android

分類側滑菜單 , Yalantis 出品。

項目地址: https://github.com/Yalantis/Side-Menu.Android

2.Context-Menu.Android

可以方便快速集成漂亮帶有動畫效果的上下文菜單, Yalantis 出品。

項目地址: https://github.com/Yalantis/Context-Menu.Android

3.Pull-to-Refresh.Rentals-Android

提供一個簡單可以自定義的 下拉刷新 實現,Yalantis 出品。

項目地址: https://github.com/Yalantis/Pull-to-Refresh.Rentals-Android

4.Titanic

可以顯示水位上升下降的TextView

項目地址: https://github.com/RomainPiel/Titanic

5.AndroidSwipeLayout

滑動Layout ,支持單個View,ListView,GridView

項目地址: https://github.com/daimajia/AndroidSwipeLayout

Demo地址: Download Demo

6.Android Typeface Helper

可以幫你輕松實現自定義字體的庫

項目地址: https://github.com/norbsoft/android-typeface-helper

7.android-lockpattern

Android的圖案密碼解鎖

項目地址: https://code.google.com/p/android-lockpattern/

Demo地址: https://play.google.com/store/apps/details?id=group.pals.android.lib.ui.lockpattern.demo

文檔介紹: https://code.google.com/p/android-lockpattern/wiki/QuickUse

APP示例:Android開機的圖案密碼解鎖,支付寶的密碼解鎖

8.ToggleButton

狀態切換的 Button,類似 iOS,用 View 實現

項目地址: https://github.com/zcweng/ToggleButton

9.WilliamChart

繪制圖表的庫,支持LineChartView、BarChartView和StackBarChartView三中圖表類型,並且支持 Android 2.2及以上的系統。

項目地址: https://github.com/diogobernardino/WilliamChart

Demo地址: https://play.google.com/store/apps/details?id=com.db.williamchartdemo

Demo項目: https://github.com/diogobernardino/WilliamChart/tree/master/sample

10.實現滑動ViewPager漸變背景色

項目地址: https://github.com/TaurusXi/GuideBackgroundColorAnimation

11.Euclid

用戶簡歷界面, Yalantis 出品。

項目地址: https://github.com/Yalantis/Euclid

12. InstaMaterial

Instagram的一組Material 風格的概念設計

項目地址: https://github.com/frogermcs/InstaMaterial

13. SpringIndicator

使用bezier實現粘連效果的頁面指示

項目地址: https://github.com/chenupt/SpringIndicator

14. BezierDemo

仿qq消息氣泡拖拽 消失的效果。

項目地址: https://github.com/chenupt/BezierDemo

15. FoldableLayout

折疊的信紙被打開一樣的動畫效果

項目地址: https://github.com/alexvasilkov/FoldableLayout

16.Taurus

下拉刷新,Yalantis 出品。(是不是有點似曾相識呢?)

項目地址: https://github.com/Yalantis/Taurus

17. PersistentSearch

在點擊搜索的時候控制項在原有位置顯示輸入框。

項目地址: https://github.com/Quinny898/PersistentSearch

18. circular-progress-button

帶進度顯示的Button

項目地址: https://github.com/dmytrodanylyk/circular-progress-button

19. discrollview

當上下滾動的時候子元素會呈現不同動畫效果的scrollView,網頁上稱之為:視差滾動

項目地址: https://github.com/flavienlaurent/discrollview

20. sweet-alert-dialog

一個帶動畫效果的 自定義對話框樣式

項目地址: https://github.com/pedant/sweet-alert-dialog

21. android-floating-action-button

Material Desig風格的 浮動操作按鈕

項目地址: https://github.com/futuresimple/android-floating-action-button

22. android-collapse-calendar-view

可以在月視圖與周視圖之間切換的calendar控制項

項目地址: https://github.com/blazsolar/android-collapse-calendar-view

22. android-collapse-calendar-view

可以在月視圖與周視圖之間切換的calendar控制項

項目地址: https://github.com/blazsolar/android-collapse-calendar-view

23. NumberProgressBar

個簡約性感的數字進度條

項目地址: https://github.com/daimajia/NumberProgressBar

24. CircularProgressView

CircularProgressView 是通過自定義view的方式實現的Material風格的載入提示控制項,兼容任何版本。

項目地址: https://github.com/rahatarmanahmed/CircularProgressView

25. OriSim3D-Android

opengl 實現了各種折紙效果,模擬了從一張紙折疊成一條船的整個過程

項目地址: https://github.com/RemiKoutcherawy/OriSim3D-Android

26、萬能日歷控制項:CalendarView

GitHub: https://github.com/huanghaibin-dev/CalendarView

中文使用文檔: https://github.com/huanghaibin-dev/CalendarView/blob/master/QUESTION_ZH.md

27、大圖查看器: BigImage ImageView ViewPager

Github: https://github.com/SherlockGougou/BigImageViewPager

地址: https://www.jianshu.com/p/b15e65791c3f

支持超長圖、超大圖的圖片瀏覽器,優化內存,支持手勢放大、下拉關閉、查看原圖、載入百分比、保存圖片等功能。現已支持androidx。

28、安卓工具包androidUntilCode(安卓必備)

Github: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/README-CN.md

29、萬能適配器-BRAVH

官網: http://www.recyclerview.org

GitHub: https://github.com/CymChad/BaseRecyclerViewAdapterHelper

RecyclerView

作為Android最常用的控制項之一,是否常常為「她」操碎了心

BRVAH受益群體是所有Android開發者,希望更多開發者能夠一起來把這個項目做得更好幫助更多人

30、智能刷新控制項--SmartRefreshLayout

GitHub: https://github.com/scwang90/SmartRefreshLayout

中文: https://gitee.com/scwang90/SmartRefreshLayout

SmartRefreshLayout以打造一個強大,穩定,成熟的下拉刷新框架為目標,並集成各種的炫酷、多樣、實用、美觀的Header和Footer。 正如名字所說,SmartRefreshLayout是一個「聰明」或者「智能」的下拉刷新布局,由於它的「智能」,它不只是支持所有的View,還支持多層嵌套的視圖結構。 它繼承自ViewGroup 而不是FrameLayout或LinearLayout,提高了性能。 也吸取了現在流行的各種刷新布局的優點,包括谷歌官方的 SwipeRefreshLayout , 其他第三方的 Ultra-Pull-To-Refresh 、 TwinklingRefreshLayout 。 還集成了各種炫酷的 Header 和 Footer。

31、內存泄漏檢測工具--leakcanary

使用方式: https://www.jianshu.com/p/b83ddffcb3b5

LeakCanary是Square公司基於MAT開源的一個工具,用來檢測Android App中的內存泄露問題。官方地址: https://github.com/square/leakcanary

32、 1218683832 / AndroidSlidingUpPanel

SlidingUpPanelLayout:可以上下滑動的菜單布

https://github.com/1218683832/AndroidSlidingUpPanel

『叄』 如何成功運行SDL官方提供的Android平台的Demo

操作步驟:
第一步:准備SDL源代碼包;
1. 去官網下載最新版SDL2-2.0.3.tar.gz;
2. 解壓後,可以在根目錄下找到android-project目錄和README-android.txt,前者是一個一個Android工程模板,後者是關於如何使用該工程的文檔說明。
3. 調整目錄,使其成為一個可編譯的工程:
(1) 將android-project目錄剪切到與SDL2-2.0.3同級的目錄;
(2) 然後將SDL2-2.0.3目錄拷貝到android-project\jni目錄下,並重命名為SDL;
第二步:為SDL增加main函數
(1) 下載wiki.libsdl.org/Tutorials#Android.c文件;
(2) 下載之後將其放入android-project\jni\src目錄;
(3) 將main.c加入android-project\jni\src\Android.mk: 在Android.mk中默認有個YourSourceHere.c,將其替換為main.c即可;
第三步:編譯libSDL2.so和libmain.so
註:請確認NDK的bin目錄已經配置到環境變數PATH中去;
打開cmd命令窗口,進入到android-project目錄,然後執行"ndk-build"命令進行編譯。編譯成功後會在android-project根目錄下生成libs目錄,下面有各個平台的需要的這兩個so文件。
第四步:修改build target配置文件
默認的工程是使用的=android-12,必須使這個target與系統配置的一致,否則編譯會失敗. 具體的配置位於android-project/project.properties和android-project/default.properties中。由於adt-bundle-windows-x86_64-20130729.zip包對應的是android-18,因此需要將這兩個文件中的配置全部改為android-18.
第五步:導入Eclipse運行
依次選擇File->New->Android->Android Project from Existing Code,然後選擇android-project目錄將工程文件導入到Eclipse中。
然後選擇按照正常的Android工程運行即可。這個時候程序閃一下什麼都沒有,因為沒有添加資源。可下載一個bmp圖片放到android-project/assets中,這個目錄是由eclipse自動生成的。然後運行就可以看到通過SDL渲染出來的圖片了。

『肆』 微信中常用設備中android-8是什麼手機

android-8隻是系統自動生成的一個設備名字,不可以判斷手機型號,另外設備名稱可以修改的,點擊就可以修改成想要的名稱

熱點內容
for循環sql語句 發布:2025-05-13 22:45:49 瀏覽:17
python實用代碼 發布:2025-05-13 22:19:41 瀏覽:843
dede資料庫的配置文件 發布:2025-05-13 22:19:08 瀏覽:967
給字元加密 發布:2025-05-13 22:12:32 瀏覽:972
資料庫系統實現答案 發布:2025-05-13 22:11:57 瀏覽:140
哪個軟體可以共存安卓 發布:2025-05-13 22:10:15 瀏覽:552
上傳宦妃天下野泉肉肉 發布:2025-05-13 22:10:10 瀏覽:408
洗眼睛解壓 發布:2025-05-13 21:58:28 瀏覽:272
c存儲指針 發布:2025-05-13 21:49:04 瀏覽:922
結繩編程軟體 發布:2025-05-13 21:49:03 瀏覽:851