2014-09-09 3 views
0

Android приложение: Я получил ListView, в котором каждый элемент имеет: -три TextViews -Один ImageView -Один WebViewНу отформатированный текст на Android

Содержание WebView представляет собой форматированный текст: он имеет два цвета текста, и это оправдано. Он отлично работает, но WebView занимает полсекунды. Я посмотрел несколько вопросов здесь на Stackoverflow: никакой ответ не работал. Я действительно не поймал, в чем проблема, потому что текст очень короткий, как тридцать символов, а List ha теперь как два элемента!

Я заселить webViews на getView() метод моего CustomAdapter, таким образом:

holder.webDesc = (WebView) convertView.findViewById(R.id.hos_webView_Desc); 
holder.webDesc.loadData(element.description, "text/html", "utf-8"); 

и содержание на element.description является

<div style='text-align:justify;' bgcolor='#333333'> 
<font color="#ff7f7f" size = 2>ABC </font> 
<font color="#aaff7f" size = 2>DEFG</font> 
</div> 

заканчивается WebView объявляется таким образом на. xml

<WebView 
    android:id="@+id/hos_textView_why" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="@color/redS50B100" 
    android:layout_marginLeft="@dimen/activity_horizontal_margin" 
    android:layout_marginRight="@dimen/activity_horizontal_margin" 
    android:layout_marginBottom="8dp" 
/> 

Итак, я подумал: я неправильно заполняю WebView? Если нет, то как я могу ускорить его загрузку? Или, что более важно, есть альтернатива WebView, которая допускает многоцветное управление и обоснование?

+0

Вы можете использовать Spannables для цвета, но обоснование не доступно в основной SDK. –

+0

Я не знала, что это возможно, это хорошая замена! Жаль, что я не могу оправдать текст, но я думаю, что смогу пойти с ними. Благодаря! –

+0

textView.setText (Html.fromString (безотносительно)) является вашим другом –

ответ

0

Попробуйте добавить следующие строки в Manifest.xml

android:hardwareAccelerated="true" 

и это к вашему CustomAdapter:

holder.webDesc.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
+0

Я не вижу никакой разницы, спасибо в любом случае –

+0

, и вы можете попробовать добавить 'holder.webDesc.setLayerType (View.LAYER_TYPE_HARDWARE, null);' – Metehan

+0

уже все коды в этом ответе: http://stackoverflow.com/questions/7422427/android-webview-slow –

Смежные вопросы