我正在使用imageView + TextView作为ImageTextView创建组件视图,如下所示在xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    >
<Button android:id="@+id/btnView" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:id="@+id/txtView" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>


在使用中,我想使用ImageTextView如下:

<com.mypkg.MyClass.ImageTextView
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:text="text for textView"   //used for textview
        android:background="@drawable/background.png"  //used for image view
/>


在imageTextViewConstructor中,我想按以下逻辑将textSize,text,textColor和所有textView的属性绕过而没有layoutParams的子txtView,如下所示,如何在Java代码中过滤AttributeSet。

public ImageTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
         //------------------------------
        // AttributeSet filteredAttrs= filterAttributeSet(attrs);
        //I want to remove layoutparams and background from parent attributeset
        //------------------------------
       TextView mtxtView=(TextView)findViewByid(R.id.txtView);
        mtxtView=new TextView(this,filteredAttrs);
    }

最佳答案

TextView本身可以在顶部,底部,左侧(开始)和/或右侧(结束)中包含Drawable

<TextView
  ...
  android:drawablePadding="4dp"
  android:drawableLeft="@drawable/my_drawable"/>


有关此主题的更多信息,请参见:http://antonioleiva.com/textview_power_drawables/

07-25 22:45