2

我创建了一个扩展 View 类的类。

public class SplashScreen extends View

我通过设置 contentview 来使用它

View splash = new SplashScreen(this);
setContentView(splash);

我需要设置背景图像,但我不能使用布局。我想我需要做画布绘图,但我不知道该怎么做。

protected void onDraw(Canvas canvas) {
  ballBounds.set(ballX-ballRadius, ballY-ballRadius, ballX+ballRadius, ballY+ballRadius);
  paint.setColor(Color.LTGRAY);
  // canvas.drawImage(R.drawable.background_image); (Ps: I know there is no function such as drawImage)"
  canvas.drawOval(ballBounds, paint);}
4

3 回答 3

5

如果你只想设置背景,你可以做

public SplashScreen(Context context, AttributeSet attrs) {
    super(context, attrs);
    setBackgroundResource(R.drawable.background);
}
于 2012-06-20T09:04:52.093 回答
2

您可以在画布上添加图像:

        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); 
于 2012-06-20T08:46:58.147 回答
0

你不只是想改变SplachScreen类型activity吗?然后setContentView更改为您的任何layout内容,如果您希望该启动屏幕出现在您的应用程序之前,请使其首先进入Manifestsplashscreen最终,销毁activity并启动您的应用程序菜单活动。那么你就不需要 View 课,也不需要更少的工作来寻找问题所在

于 2012-06-20T08:57:45.043 回答