以编程方式在Android LinearLayout中添加一个Icon

时间:2014-10-06 20:13:33

标签: android android-layout textview android-linearlayout

                for (int i = 0; i < tel.size(); i++) {
                LayoutInflater inflater = getLayoutInflater();
                View vi = inflater.inflate(R.layout.telefones, null);
                TextView tv = (TextView) vi.findViewById(R.id.telefone);
                tv.setText(tel.get(i).getNumero());
                l1.addView(vi);

                View divider = new View(this);
                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 1);

                divider.setLayoutParams(lp);
                if((i+1)<tel.size()){
                    divider.setBackgroundColor(0x66728c93);
                }else{

                    divider.setVisibility(View.GONE);
                }
                l1.addView(divider);


            }

上面的代码给出了以下结果:

enter image description here

现在,我要做的是添加一个与电话号码右侧对齐的消息图标,如下所示:

enter image description here

如何以编程方式将该图标放入我的布局?

3 个答案:

答案 0 :(得分:2)

使用android:drawableRight || top || left || bottom非常简单。

示例:

 <TextView
            android:id="@+id/text_adr"
            android:drawableRight="@drawable/action_place"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:layout_marginBottom="@dimen/margin_image"/>

请参阅TextView文档,了解更多信息

here您可以自由下载图片图标。

答案 1 :(得分:1)

您必须使用嵌套布局。也许是一个水平对齐的LinearLayout,它承载TextView(width = 0dp和weight = 1)和图标(width = wrap_content)。

答案 2 :(得分:1)

方法

TextView.setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)

是您需要以编程方式添加图标的方法。 文档HERE