2015-10-24 119 views
0

我试图在蓝天上显示移动的云。显示蓝色背景,但不显示云。我在这里尝试了其他问题的不同方法,但没有任何效果。我的代码是:自定义视图不绘制位图

public class CloudBackground extends View { 

Bitmap cloud; 
int x = 0; 
int y = 0; 
Paint paint = new Paint(); 
Rect rectangle = new Rect(0,0,100,100); 

public CloudBackground(Context context,AttributeSet attrs) { 
    super(context,attrs); 
    cloud = BitmapFactory.decodeResource(getResources(),R.drawable.cloud1); 
} 

@Override 
protected void onDraw (Canvas canvas){ 
    super.onDraw(canvas); 

    Rect back = new Rect(); 
    back.set(0,0,canvas.getWidth(), canvas.getHeight()); 

    Paint pBlue = new Paint(); 
    pBlue.setStyle(Paint.Style.FILL); 
    pBlue.setColor(Color.CYAN); 

    canvas.drawRect(back, pBlue); 

    drawCloud(x,y,canvas); 

    if (x < canvas.getWidth()) 
     x = x + 10; 
    else { 
     y = y + 10; 
     x = 0; 
    } 
    invalidate(); 

} 

private void drawCloud(int x2, int y2, Canvas canvas) { 
    canvas.drawBitmap(cloud, x2, y2,paint); 

} 

回答

0

这个问题终于用a.jpg代替了.png解决了。这么简单,没有理由。

0

好的。试试这个:

public CloudBackground(Context context,AttributeSet attrs) { 
    super(context,attrs); 
    cloud = BitmapFactory.decodeResource(context.getApplicationContext().getResources(),R.drawable.cloud1); 
} 
+0

我在第二部分丢失了括号(已经在说明中添加了)。但是,我已经包括了第一部分,并且在移动云时仍然评论了这部分,但仍然不起作用:( –

+0

我编辑了我的原始文章,试试并告诉我会发生什么 –