Hi forandroid,

  I guess you're talking about the class TwoLineListItem [1], right? Out of
curiosity, not because I am trying to be a smart ass: Why would this be
faster?

Cheers,
Mariano

[1]
http://developer.android.com/reference/android/widget/TwoLineListItem.html

On Wed, Jan 14, 2009 at 10:51 AM, for android <[email protected]> wrote:

> use the efficient list adapter
>
> And also you can use the TwoLineListitem....
>
>
> On Wed, Jan 14, 2009 at 2:23 PM, Mariano Kamp <[email protected]>wrote:
>
>> *bump* ;-)
>>
>>
>> On Sun, Jan 11, 2009 at 7:10 PM, Mariano Kamp <[email protected]>wrote:
>>
>>> Hi,
>>>   I have a performance problem in a ListView. The problem seems to be
>>> that it takes too long to setup each individual row. It scrolls very, very
>>> painfully slow, because of that.
>>>
>>>   The actual code renders an Entry differently depending on the read
>>> state and if it is changed. When not using this code and just plainly called
>>> setText() on the TextViews it is reasonable fast.  Also the content is HTML.
>>>
>>>   Am I doing something terribly wrong here?
>>>
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>> <RelativeLayout xmlns:android="
>>> http://schemas.android.com/apk/res/android";
>>>  android:layout_width="fill_parent" android:layout_height="wrap_content"
>>> >
>>>
>>> <TextView android:id="@+id/feed_title" android:layout_width=
>>> "fill_parent"
>>>  android:layout_height="wrap_content" android:textSize="11sp"
>>>  android:paddingTop="3px" />
>>>  <TextView android:id="@+id/entry_title" android:layout_width=
>>> "fill_parent"
>>>  android:layout_height="wrap_content" android:layout_below=
>>> "@id/feed_title"
>>>  android:textSize="15sp" android:paddingBottom="3px" />
>>> </RelativeLayout>
>>>
>>> class EntryListAdapter extends BaseAdapter {
>>>
>>>  [..]
>>>
>>> public View getView(int position, View convertView, ViewGroup parent) {
>>>  View rowView = convertView != null ? convertView : activity
>>>  .findViewById(R.layout.entry_row);
>>>
>>>  if (rowView == null)
>>> rowView = inflater.inflate(R.layout.entry_row, parent, false);
>>>
>>> Entry entry = entries.get(position);
>>>  --> slow version
>>> EntryViewHelper.populateEntryView(rowView, entry);
>>>  <--
>>>              -- OR --
>>>                  --> (somewhat) fast version
>>>  TextView entryTitleView = (TextView) rowView.findViewById(R.id.
>>> entry_title);
>>>  TextView feedTitleView = (TextView) rowView.findViewById(R.id.
>>> feed_title);
>>>
>>>
>>>  feedTitleView.setText(entry.getFeedTitle());
>>> entryTitleView.setText(entry.getTitle());
>>>  <--
>>> return rowView;
>>>  }
>>> }
>>>
>>> class EntryViewHelper {
>>>  [..]
>>>
>>> static void populateEntryView(View view, Entry entry) {
>>>
>>> TextView entryTitleView = (TextView) view
>>> .findViewById(R.id.entry_title);
>>>  TextView feedTitleView = (TextView) view.findViewById(R.id.feed_title);
>>>
>>> feedTitleView.setText(U.renderTitleToSpannedString(
>>> entry.getFeedTitle(), entry.getFeedTitleType()));
>>>  entryTitleView.setText(U.renderTitleToSpannedString(entry.getTitle(),
>>> entry.getTitleType()));
>>>
>>> int style = Typeface.NORMAL;
>>>  if (!entry.isRead())
>>> style |= Typeface.BOLD;
>>>  if (entry.isReadStatePending())
>>> style |= Typeface.ITALIC;
>>>
>>> entryTitleView.setText(U.renderTitleToSpannedString(entry.getTitle(),
>>> entry
>>>  .getTitleType()));
>>> feedTitleView.setText(U.renderTitleToSpannedString(
>>> entry.getFeedTitle(), entry.getFeedTitleType()));
>>>
>>> entryTitleView.setTypeface(Typeface.DEFAULT, style);
>>>  }
>>> }
>>>
>>> ..
>>> import android.text.Html;
>>> import android.text.Spanned;
>>> import android.text.SpannedString;
>>> ..
>>> class U {
>>> static Spanned renderTitleToSpannedString(String titleString,
>>>  String titleType) {
>>> Spanned title = null;
>>>  if ("html".equals(titleType) || "xhtml".equals(titleType))
>>>  title = Html.fromHtml(titleString);
>>> else
>>>  title = new SpannedString(titleString);
>>> return title;
>>>  }
>>> }
>>>
>>>   Btw. I re-use the convert view etc. The performance degradation only
>>> happens when I style the output.
>>>
>>> Cheers,
>>> Mariano
>>>
>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to