如何调用getDrawable方法

时间:2014-02-22 10:43:01

标签: android android-drawable

我正在创建一个图像共享应用,它使用按钮来共享图像。我在下面的代码中收到了unable to resolve the required method error

public class ShareActivity extends Activity implements View.OnClickListener {

    Button button1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_share);

        button1 = (Button)findViewById(R.id.button1);
        button1.setOnClickListener(this);
    }
    private void button1Click()
    {
        BitmapDrawable bm = (BitmapDrawable) getDrawable(button1);
        Bitmap mysharebmp = bm.getBitmap();
        String path = Images.Media.insertImage(getContentResolver(),
                            mysharebmp, "MyImage", null);

在这一行:

BitmapDrawable bm = (BitmapDrawable) getDrawable(button1);ShareActivity

我得到了The method getDrawable(Button) is undefined for the type ShareActivity。为什么我会收到此错误?完整代码为here

3 个答案:

答案 0 :(得分:2)

目前还不清楚你想在这里做什么,我怀疑你会遇到这个代码的其他一些问题。但是,您收到错误“getDrawable未定义ShareActivity”的原因是因为Activity类没有getDrawable方法。

您需要获取应用资源,然后检索drawable,而不是调用getDrawable。你在寻找的是:

BitmapDrawable bm = (BitmapDrawable) getResources().getDrawable(R.drawable.my_bitmap);

/res/drawable/中有一些名为“my_bitmap.png”的图片。

2016年2月7日编辑:此答案不再正确。 2014年11月发布的API 21(Lollipop)中添加了Context#getDrawable(int)Note that you probably shouldn't be using it anyway

答案 1 :(得分:0)

如果您尝试在按钮内显示图像,请考虑使用图像按钮对象内定义的功能。 我的意思是说使用button1.getDrawable()

答案 2 :(得分:-3)

getDrawable()方法需要资源的 id ,在这种情况下,您要传递Button。尝试传递 R.id.button1 这是documentation