将背景图像添加到自定义视图

时间:2014-03-08 09:41:50

标签: android android-view

我正在开发一个“虚拟黑板”的小型android项目。我可以在我的手机/平板电脑上绘图,并且这些线存储在服务器中以便将来再现(线路通过套接字发送)

所有这些都是通过使用自定义视图完成的。现在,我需要添加动态更改视图背景的选项。到现在为止,我将如何获得此图像(从图库,由另一个应用程序发送等)并不重要。现在已经足够了(一个文件,一个输入流,一个Bitmap)并将其设置为我的视图背景,然后能够绘制它(我仍然不担心大小调整,缩放等)

我已经阅读了一些关于从资源和资源加载图片的内容,但是没有一个适用于我的案例(IMO),因为图片不属于我的应用程序。

关于我应该如何进行的任何建议?

4 个答案:

答案 0 :(得分:1)

当您创建 def __unicode__(self): return u'%s' % self.lname 时,只需使用您正在使用的customView中的以下代码

constructor

使用上述任何方法更改背景。

答案 1 :(得分:0)

也许这可能会有所帮助 setBackground(Drawable background)

答案 2 :(得分:0)

我的第一个建议是去看看Picasso,这是一个开源库,可以为你完成有关加载和缓存图像的所有工作。

如果你想要去寻找自定义的东西,这是一个关于下载图片的老问题

Loading remote images

并将其设置为后台使用:

答案 3 :(得分:0)

您可以覆盖OnDraw(Canvas canvas)方法并使用画布将图像绘制为位图。像这样:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pic180);  
Matrix matrix=new Matrix();
matrix.postScale(0.8f, 0.8f);
matrix.postRotate(45);
Bitmap dstbmp=Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),
bmp.getHeight(),matrix,true);
canvas.drawColor(Color.BLACK); 
canvas.drawBitmap(dstbmp, 10, 10, null); 

上面的代码经过测试,效果很好。请记住,如果你重写onDraw(),那么你只想加载一次位图(不是每次重绘视图