Hi,

You don't need to do this, you can simply use the ellipsize feature of
TextView. It will automatically truncate the text based on the
available space.

On Mon, Jan 26, 2009 at 9:05 AM, Alexey <avolo...@gmail.com> wrote:
>
> Hi all , i have a custom View with layout
> <LinearLayout
>    android:id="@+id/story_image_layout"
>    xmlns:android="http://schemas.android.com/apk/res/android";
>    android:orientation="horizontal"
>    android:layout_width="fill_parent"
>    android:layout_height="wrap_content"
>    android:layout_marginLeft="5px"
>    android:layout_marginRight="5px">
>    <AbsoluteLayout
>        android:orientation="vertical"
>        android:background="@drawable/image_back"
>        android:layout_width="wrap_content"
>        android:layout_height="wrap_content"
>        android:padding="5px">
>        <ImageView
>            android:id="@+id/story_image"
>            android:layout_width="wrap_content"
>            android:layout_height="wrap_content"
>            android:layout_y="10px"
>            android:layout_x="5px"/>
>        <ImageView
>            android:id="@+id/story_zoom"
>            android:layout_width="wrap_content"
>            android:layout_height="wrap_content"
>            android:src="@drawable/zoom_in"/>
>    </AbsoluteLayout>
>    <TextView
>        android:id="@+id/story_text_partial"
>        android:layout_width="wrap_content"
>        android:layout_height="wrap_content"
>        android:lineSpacingExtra="5px"
>        android:layout_marginLeft="10px"
>      />
> </LinearLayout>
> And trying to calc
> And a long string. I want part of this string to go to the TextView on
> the right .
> To do that i'm trying to measure the imageview on the left and
> calculate the size of the string i need to put in my textview.
>
> LinearLayout vParent = (LinearLayout) findViewById
> (R.id.story_image_layout);
>                AbsoluteLayout vImage = (AbsoluteLayout) vParent.getChildAt(0);
>                int shortTextWidth = vParent.getMeasuredWidth() -
> vImage.getMeasuredWidth();
>                TextView vText = (TextView) findViewById(R.id.story_text);
>                TextView vTextShort = (TextView) vParent.getChildAt(1);
>                int mesuredHeight = vParent.getMeasuredHeight();
>                        int lineHeight = vTextShort.getLineHeight();
>                        int nmbLines = mesuredHeight / lineHeight - 2;
>                        Paint mPaint = new Paint();
>                        int breakText = 
> mPaint.breakText(mStoryText.toCharArray(), 0,
> mStoryText.length(), shortTextWidth, null);
>                        mStoryBreakIdx = nmbLines * breakText;
>
>                }
>        vTextShort.setText(mStoryText.substring(0, mStoryBreakIdx));
>
> It all works fine, except i can't set the text into the textView. If
> it's in constructor getMesured return 0; if it's in the onSizeChanged
> - measurements are calculating but TextView after set text have
> measurements too small to fit the text.
> If i put set text in a thread for example everything works, but i
> don't want a delay .
> Question - where i need set text to my view to render this correctly ?
>
> >
>



-- 
Romain Guy
Android framework engineer
romain...@android.com

Note: please don't send private questions to me, as I don't have time
to provide private support.  All such questions should be posted on
public forums, where I and others can see and answer them

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

Reply via email to