[android-developers] Re: Customized TextView for customized Typeface
Note: I renamed it from MemoryTextView to MyTextView but got not all of them. Don't mind about the different names. In principle it works, but I cant use the android default attributes for my custom text view... On 30 Nov., 12:26, Danny S. danny.schi...@googlemail.com wrote: Hi, I want to create a custom TextView that uses custom Typeface. I do this, cause I won't set Typeface for each TextView within the code. I created a class: public class MyTextView extends TextView { public MemoryTextView(Context context, AttributeSet attrs) { super(context, attrs); // retrieve attributes TypedArray array = mContext.obtainStyledAttributes(attrs, R.styleable.MemoryTextView); String font = array.getString(R.styleable.MemoryTextView_ttfName); // set font if defined, otherwise use standard font if (font != null) setFont(font); // free up memory array.recycle(); } } I created the attributes for my view within the attrs.xml. And I can use the view and see my custom font. In Layout I use my view this way: my.package.structure.views.MyTextView android:layout_width=wrap_content android:layout_height=fill_parent myTextView:ttfName=AldrichRegular myTextView:text=@string/app_name android:textColor=@color/white android:textStyle=bold android:textSize=18sp android:gravity=center / Now the Problem: android based attributes I set does not work. My text is not bold, is not sized 18sp and gravity is not set like I would. If I add the android attribute to my declare-styleable it is used (e.g. the gravity). declare-styleable name=MemoryTextView attr name=android:gravity / ... other custom attributes /declare-styleable But I can not list all the possible TextView styles to this list. It seems not to be the clear way. Where is my mistake? I only want a TextView with all of it's behavior and additional functionality... Thanks a lot, -Danny -- 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
[android-developers] Re: Customized TextView for customized Typeface
I think this would not work. TextView extends View already... And If I put the TextView within a LinearLayout e.g. and inflate it in the constructor of my custom view, I have to set the attributes manually too. It seems I have to retrieve all my TextViews and set the Typeface for each separate in the code. The idea of an extended TextView would be the best and clean way, but I think its not possible as long as I add the android based attributes to the declare-stylable set too... I think this is really ugly... If I forget one - someone wonders why their set attributes not act for my custom view. Best regards, -Danny S. On 30 Nov., 12:33, Danny S. danny.schi...@googlemail.com wrote: Note: I renamed it from MemoryTextView to MyTextView but got not all of them. Don't mind about the different names. In principle it works, but I cant use the android default attributes for my custom text view... On 30 Nov., 12:26, Danny S. danny.schi...@googlemail.com wrote: Hi, I want to create a custom TextView that uses custom Typeface. I do this, cause I won't set Typeface for each TextView within the code. I created a class: public class MyTextView extends TextView { public MemoryTextView(Context context, AttributeSet attrs) { super(context, attrs); // retrieve attributes TypedArray array = mContext.obtainStyledAttributes(attrs, R.styleable.MemoryTextView); String font = array.getString(R.styleable.MemoryTextView_ttfName); // set font if defined, otherwise use standard font if (font != null) setFont(font); // free up memory array.recycle(); } } I created the attributes for my view within the attrs.xml. And I can use the view and see my custom font. In Layout I use my view this way: my.package.structure.views.MyTextView android:layout_width=wrap_content android:layout_height=fill_parent myTextView:ttfName=AldrichRegular myTextView:text=@string/app_name android:textColor=@color/white android:textStyle=bold android:textSize=18sp android:gravity=center / Now the Problem: android based attributes I set does not work. My text is not bold, is not sized 18sp and gravity is not set like I would. If I add the android attribute to my declare-styleable it is used (e.g. the gravity). declare-styleable name=MemoryTextView attr name=android:gravity / ... other custom attributes /declare-styleable But I can not list all the possible TextView styles to this list. It seems not to be the clear way. Where is my mistake? I only want a TextView with all of it's behavior and additional functionality... Thanks a lot, -Danny -- 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
[android-developers] Re: Customized TextView for customized Typeface
For additional info: I logged out the attrs that are given to my View: Attribute 1: textStyle Attribute 2: textColor Attribute 3: gravity Attribute 4: layout_width Attribute 5: layout_height Attribute 6: ttfName But textStyle, textColor or gravity for example have no effect. I thought when I call the super constructor and pass the attr to it, it takes all the relevant attributes... But it doesn't! -Danny On 30 Nov., 15:02, Danny S. danny.schi...@googlemail.com wrote: I think this would not work. TextView extends View already... And If I put the TextView within a LinearLayout e.g. and inflate it in the constructor of my custom view, I have to set the attributes manually too. It seems I have to retrieve all my TextViews and set the Typeface for each separate in the code. The idea of an extended TextView would be the best and clean way, but I think its not possible as long as I add the android based attributes to the declare-stylable set too... I think this is really ugly... If I forget one - someone wonders why their set attributes not act for my custom view. Best regards, -Danny S. On 30 Nov., 12:33, Danny S. danny.schi...@googlemail.com wrote: Note: I renamed it from MemoryTextView to MyTextView but got not all of them. Don't mind about the different names. In principle it works, but I cant use the android default attributes for my custom text view... On 30 Nov., 12:26, Danny S. danny.schi...@googlemail.com wrote: Hi, I want to create a custom TextView that uses custom Typeface. I do this, cause I won't set Typeface for each TextView within the code. I created a class: public class MyTextView extends TextView { public MemoryTextView(Context context, AttributeSet attrs) { super(context, attrs); // retrieve attributes TypedArray array = mContext.obtainStyledAttributes(attrs, R.styleable.MemoryTextView); String font = array.getString(R.styleable.MemoryTextView_ttfName); // set font if defined, otherwise use standard font if (font != null) setFont(font); // free up memory array.recycle(); } } I created the attributes for my view within the attrs.xml. And I can use the view and see my custom font. In Layout I use my view this way: my.package.structure.views.MyTextView android:layout_width=wrap_content android:layout_height=fill_parent myTextView:ttfName=AldrichRegular myTextView:text=@string/app_name android:textColor=@color/white android:textStyle=bold android:textSize=18sp android:gravity=center / Now the Problem: android based attributes I set does not work. My text is not bold, is not sized 18sp and gravity is not set like I would. If I add the android attribute to my declare-styleable it is used (e.g. the gravity). declare-styleable name=MemoryTextView attr name=android:gravity / ... other custom attributes /declare-styleable But I can not list all the possible TextView styles to this list. It seems not to be the clear way. Where is my mistake? I only want a TextView with all of it's behavior and additional functionality... Thanks a lot, -Danny -- 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