如何通过XML将图像添加到Android TextView

时间:2017-07-14 23:48:49

标签: java android image android-layout textview

我正在尝试将图片添加到Android TextView,但没有显示任何内容。我就是这样做的:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="RevUpload">
        <item name="android:src">@drawable/ic_airplay_black_24dp</item>
        <item name="android:paddingLeft">44dp</item>
    </style>

</resources>

这就是我所说的:

TextView about = new TextView(mContext);
about.setText("About");
about.setTextAppearance(R.style.RevUpload);

我错过了什么?我的方法有误吗?

我知道我可以通过drawable添加它,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="RevUpload">
        <item name="android:src">@drawable/ic_airplay_black_24dp</item>
        <item name="android:paddingLeft">44dp</item>
    </style>

</resources>

但是我想通过样式XML文件添加它。

Vielen dank im voraus。

2 个答案:

答案 0 :(得分:1)

属性android:src仅显示ImageView的图片。如果要在Java代码中为TextView添加drawable,请使用TextView setCompoundDrawables()方法之一。

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView tv = (TextView) findViewById(R.id.text);
        tv.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_android_black_24dp, 0);
    }
}

activity_main.xml中

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello world"/>

</FrameLayout>

模拟器

的屏幕截图

enter image description here

进一步阅读

TextView.setCompoundDrawables() documentation

答案 1 :(得分:1)

试试这会对你有所帮助

阅读您的drawable

Drawable dr = getResources().getDrawable(R.drawable.ic_img);
Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();

// set size of your drable
Drawable img = new BitmapDrawable(getResources(),Bitmap.createScaledBitmap(bitmap, 50, 50, true));

设置新的,缩放的可绘制&#34; d&#34;

TextView tv = (TextView) findViewById(R.id.text);
tv.setCompoundDrawablesWithIntrinsicBounds(0, 0, img, 0);