我正在创建一个图像共享应用,它使用按钮来共享图像。我在下面的代码中收到了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。
答案 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