我動態地將textviews添加到基於用戶響應的相對佈局以創建彩色網格圖案。通常情況下,這可以包含5000多個textview,它們根據textview標記中的值具有不同的背景顏色。如何加速循環
我有這種方法,我遍歷所有textviews,只顯示那些具有相同的顏色,並將其餘設置爲灰色。如果有500條文字瀏覽,但是數字較高時表示5000,則需要13秒才能完成。
if (code.equals("all")) {
for (int i = 0; i < textViewIDs.size(); i++) {
TextView tv = (TextView) findViewById(textViewIDs.get(i));
if (!tv.getTag().toString().equals("header")) {
tv.setBackgroundColor(Color.parseColor("#" + tv.getTag().toString()));
}
}
} else {
for (int i = 0; i < textViewIDs.size(); i++) {
TextView tv = (TextView) findViewById(textViewIDs.get(i));
if (!tv.getTag().equals(code)) {
if (!tv.getTag().toString().equals("header")) {
tv.setBackgroundColor(Color.LTGRAY);
}
}else{
tv.setBackgroundColor(Color.parseColor("#" + tv.getTag().toString()));
}
}
}
textViewIDs是包含所有textview標識的數組。
如果能做些什麼來加快速度呢?
更新: 據我所知,擁有這些小部件並不理想,但我無法想出更好的解決方案。 以及每個網格單元格,在這種情況下,每個texview,具有不同的顏色,我也需要能夠管理單元格的onclick事件,以便我可以添加文本。這是文字瀏覽的推理。在使用textviews之前,我繪製了所有元素,但是當我找不到將onclick事件添加到每個單元格的方法時。
我最好詳細說明這個概念,以幫助我們試圖實現的目標,以及如果我走錯了路。
這是一個更大的應用程序的一部分,我將圖像轉換爲針跡圖。 基於用戶輸入,繪製彩色單元網格,其中每個單元格是從原始圖像最主要顏色計算出的純色。 網格將比屏幕大,所以我的視圖放置在水平和滾動視圖中,以便它們可以平移和縮放。 (這一切都很好)。 網格單元格必須可點擊才能打開或關閉背景顏色,並添加單個文本「X」字符以將針跡(單元格)標記爲已完成(這會減慢文本視圖(單元格)爲> 500)
希望有足夠的細節還有...
數組沒有得到方法。 – Blackbelt
以及它不是陣列,它的數組列表......但我不認爲你實際上可以加速循環...但是數組如果排序的話會更快,但是這要幫助你很多:) –
或者試着使用ListView –