我textview
imageview
。现在将动态生成textview。但是如何添加imageview
呢?
的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<LinearLayout
android:id="@+id/ll_rl_block4_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/growth_rl_block_title_table"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_block4_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/growth_rl_block_title_table"
android:background="@drawable/dot_green" />
<TextView
android:id="@+id/tv_block4_body1_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/growth_not1" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
在MainActivity中:
public class MainActivity extends BaseActivity {
String[] word = {"This is text1.So it should be single line", "This is text2", "This is text3"};
TextView broadcastMessage;
ImageView greenDot;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
broadcastMessage = (TextView) findViewById(R.id.tv_block4_body1_1);
greenDot = (ImageView) findViewById(R.id.iv_block4_1);
for (int i = 0; i < word.length; i++) {
broadcastMessage.append(word[i]);
broadcastMessage.append("\n");
}
}
如果你看到xml,那么也有一个imageview
。因此,textview
现在是动态生成的,但imageview
与textview
不对应。 Imageview
位于左侧,对应于TextView
附近。但是从xml
动态生成时,在textview附近缺少点。
答案 0 :(得分:1)
您可以通过添加复合drawable(左,上,右,下)来完成,如下所示:
broadcastMessage.setCompoundDrawablesWithIntrinsicBounds( getContext().getResources().getDrawable( R.drawable.smiley ), null, null, null);