Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以位图的形式获取ImageButton的背景_Android_Bitmap_Imagebutton_Android Imagebutton - Fatal编程技术网

Android 以位图的形式获取ImageButton的背景

Android 以位图的形式获取ImageButton的背景,android,bitmap,imagebutton,android-imagebutton,Android,Bitmap,Imagebutton,Android Imagebutton,我有一个画布和一个图像按钮。我正在尝试获取我的ImageButton的背景图像,并将其设置为画布的背景图像。我的画布使用drawBitmap()函数设置背景,因此它接收位图。但是,myImageButton的getBackground()函数返回一个可绘制的 如何获取ImageButton的背景并将其设置为画布的背景 canvas.setBackground(drawableFromImageButton.getConstantState().newDrawable()); 当画布处于视图状态

我有一个
画布
和一个
图像按钮
。我正在尝试获取我的
ImageButton
的背景图像,并将其设置为画布的背景图像。我的画布使用
drawBitmap()
函数设置背景,因此它接收位图。但是,my
ImageButton的
getBackground()
函数返回一个可绘制的

如何获取
ImageButton
的背景并将其设置为画布的背景

canvas.setBackground(drawableFromImageButton.getConstantState().newDrawable());

当画布处于视图状态时,可以使用setBackground方法。

您可以按照以下方式从
可绘制的
中获取
位图

Drawable drawable = imageButton.getBackground();
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();

像这样试试。这可能会有帮助

Drawable drawable = imageButton.getDrawable();
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
在那次电话之后

canvas.setBitmap(bitmap);

如果制作自定义画布,可以直接设置drawable以设置背景

照此-

customCanvas.setBackground(imageview.getBackground());
文件上写着像tbis一样-

void  setBackground(Drawable background) 
将背景设置为给定的可绘制背景,或删除背景

绘图仅用于在画布顶部绘制


我希望这能对您有所帮助。

我使用的画布是一个扩展视图的自定义类,而不是androids画布,所以我不确定这是否可行。另外,它不允许我在图像按钮drawable上调用
clone()
。发布一些代码…我得到以下
android.graphics.drawable.ColorDrawable无法转换为android.graphics.drawable.BitmapDrawable