Android Canvas 填充背景色(Canvas应用)

标签 android android-canvas paint surfaceview

通过以下代码,我有一些问题。

public class MainActivity extends Activity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView( new View(this) {
         Paint mPaint = new Paint();

         @Override
         protected void onDraw(Canvas canvas) {
            // TODO Auto-generated method stub
            super.onDraw(canvas);


            int width = this.getWidth();
            int height = this.getHeight();
            int radius = width > height ? height/2 : width/2;
            int center_x = width/2;
            int center_y = height/2;

            // prepare a paint
            mPaint.setStyle(Paint.Style.STROKE);
            mPaint.setStrokeWidth(5);
            mPaint.setAntiAlias(true);

            // draw a rectangle
            mPaint.setColor(Color.BLUE);
                mPaint.setStyle(Paint.Style.FILL); //fill the background with blue color
            canvas.drawRect(center_x - radius, center_y - radius, center_x + radius, center_y + radius, mPaint);
            // draw some text and rotation
            mPaint.setTextSize(50);
            mPaint.setTextAlign(Paint.Align.CENTER);
            mPaint.setColor(Color.BLACK);
            canvas.drawText( "Hello World" , center_x , center_y, mPaint);
         }
      });
    }
}

enter image description here

Q1:如何在frame中填充蓝色? (字还是出现了)

问题 2:此应用中有多少 View 和表面?我如何在应用程序中计算这些?

Q3:这个应用有多少个窗口?

Q4:在代码中,我没有看到任何位图对象。 但是,我认为位图是我真正可以在上面画东西的对象。是我的 理解有误? 一种可能是 Canvas 构造函数在 new 时初始化位图。

Q5:我知道这些图形化的东西最终会浮出水面然后传递给 用于最终合成的 Surfaceflinger。它位于我的代码中的什么位置?

感谢任何回复。

最佳答案

五个问题。让我们看看我可以在哪些方面提供帮助。

Q1:告诉 Paint 填充矩形:paint.setStyle(Paint.Style.FILL);

问题 2:我只看到您以编程方式创建的一个 View 。为什么要统计观看次数?

Q3:再次:一个

问题 4:您通过用 Canvas 包装可变位图来绘制它们。实际绘制的方法是 Canvas

的一部分

问题 5:您显示的代码是 Activity 的一部分。 Activity 由 Android 调用。这是您进入应用程序的入口点。

关于Android Canvas 填充背景色(Canvas应用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934875/

相关文章:

android - Eclipse 找不到我的设备

android - 使用 ViewPager 的方式与它在 android market (google play) 中的工作方式相同

android - 如何在android中制作完整的圆形 ImageView

java - 如何获取 paint/paintComponent 生成的图像?

android - 关于Android Paint绘图颜色

android - 在android中运行epub文件时出错

android - 如何在 DialogFragment 中添加 PreferenceFragment

java - 在另一个 View 上绘制外部 Canvas

android - Semi Circular Progress bar Android - 绘制半圆形

java - 重新画一个正方形?