关于ZAKER 融媒体解决方案 合作 加入

如何在 Android 按钮上以编程方式设置 drawableL.

CocoaChina 09-17

我正在动态创建按钮 . 我首先使用XML设置它们 , 我正在尝试使用下面的 XML 并使其编程 .

<Button android:id="@+id/buttonIdDoesntMatter" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="buttonName" android:drawableLeft="@drawable/imageWillChange" android:onClick="listener" android:layout_width="fill_parent"></Button>

这就是我到目前为止所拥有的 . 除了可绘制之外 , 我可以做任何事情 .

linear = ( LinearLayout ) findViewById ( R.id.LinearView ) ;Button button = new Button ( this ) ;button.setText ( "Button" ) ;button.setOnClickListener ( listener ) ;button.setLayoutParams ( new LayoutParams ( android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT ) ) ; linear.addView ( button ) ;

最佳答案

您可以使用 setCompoundDrawables 方法执行此操作 . 请参阅示例here. 我在不使用 setBounds 的情况下使用了它 , 并且它工作正常 . 你可以尝试任何一种方式 .

更新:在此处复制代码会导致链接断开

Drawable img = getContext ( ) .getResources ( ) .getDrawable ( R.drawable.smiley ) ;img.setBounds ( 0, 0, 60, 60 ) ;txtVw.setCompoundDrawables ( img, null, null, null ) ;

要么

Drawable img = getContext ( ) .getResources ( ) .getDrawable ( R.drawable.smiley ) ;txtVw.setCompoundDrawablesWithIntrinsicBounds ( img, null, null, null ) ;

要么

txtVw.setCompoundDrawablesWithIntrinsicBounds ( R.drawable.smiley, 0, 0, 0 ) ;

以上内容由"CocoaChina"上传发布 查看原文
相关标签 android按钮

觉得文章不错,微信扫描分享好友

扫码分享