0

如何获得一个按钮,该按钮可以通过 onclick 侦听器以编程方式从 drawables 文件夹中获取图像,而不是使用 xml。我在画布上创建了一个按钮和一个形状,但无法让按钮成为 onclick...任何想法?

4

5 回答 5

1
button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        imageview.setImageResource(R.drawable.image);       
    }
});

我认为这有帮助。

于 2012-08-23T08:30:04.383 回答
0
LinearLayout mLinearLayout;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Create a LinearLayout in which to add the ImageView
    mLinearLayout = new LinearLayout(this);

    // Instantiate an ImageView and define its properties
    ImageView i = new ImageView(this);
    i.setImageResource(R.drawable.my_image);
    i.setAdjustViewBounds(true); // set the ImageView bounds to match the Drawable's dimensions
    i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT,
    LayoutParams.WRAP_CONTENT));

    // Add the ImageView to the layout and set the layout as the content view
    mLinearLayout.addView(i);
    setContentView(mLinearLayout);
}

您可以在此处阅读有关使用Canvas和的更多信息。Drawables

于 2012-08-22T21:21:45.883 回答
0

首先,您需要设置一个在用户单击按钮时触发的功能。您可以在布局 xml 文件中的按钮属性中执行此操作:

android:onClick="someFunction"

您需要在视图绑定到的 Activity 中创建此函数:

public void someFunction(View v){
    // Load the drawable
}
于 2012-08-22T21:00:09.213 回答
0

为什么不使用 ImageButton 并将背景设置为从可绘制对象中获取的图像?类似的东西

ImageButton imgBtn = (ImageButton) findViewById(....)
imgBtn.setBackgroundResource(R.your_resource_id)
imgBtn.setOnclickListener(.......)

希望这对您有所帮助。

于 2012-08-22T21:38:03.007 回答
0

我刚刚尝试过,并且(假设)一个 ID 按钮click会将可绘制对象加载到 ImageView。确保 ImageView 没有声明 src 属性。

android:src="@drawable/something " 一定不在那里。

这是您以编程方式加载可绘制对象的方式。

    ImageView img;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    img=(ImageView)findViewById(R.id.imgViewone);

    Button button = (Button)findViewById(R.id.click);
    button.setOnClickListener(new Button.OnClickListener(){

        @Override
        public void onClick(View v) {
            img.setBackgroundResource(R.drawable.te7);


        }


    });

}
于 2015-12-16T23:08:38.550 回答