如何通过点击按钮从drawables获取图像

时间:2012-08-22 20:50:54

标签: android button canvas onclicklistener

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

5 个答案:

答案 0 :(得分:1)

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

我认为这有帮助。

答案 1 :(得分:0)

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

android:onClick="someFunction"

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

public void someFunction(View v){
    // Load the drawable
}

答案 2 :(得分: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);
}

您可以详细了解如何使用CanvasDrawables here

答案 3 :(得分:0)

为什么不使用ImageButton并将背景设置为从drawables拍摄的图像? 像这样的东西

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

希望这对你有所帮助。

答案 4 :(得分:0)

我刚刚尝试过,并且(假设)ID为click的按钮会将一个drawable加载到ImageView。确保ImageView尚未声明src属性。

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

以下是以编程方式加载drawable的方法。

    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);


        }


    });

}