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." <[email protected]> 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." <[email protected]> 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." <[email protected]> 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 [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

