8

次のコードを持つことで、いくつか質問があります。

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);
         }
      });
    }
}

ここに画像の説明を入力

Q1: フレームに青色を塗りつぶすにはどうすればよいですか? (言葉はまだ出てくる)

Q2: このアプリにはいくつのビューとサーフェスがありますか? アプリでこれらをカウントするにはどうすればよいですか?

Q3: このアプリにはいくつのウィンドウがありますか?

Q4: コードにビットマップ オブジェクトがありません。しかし、ビットマップは本当に絵が描けるオブジェクトだと思いました。私の理解は間違っていますか?1 つの可能性は、Canvas コンストラクターが新規作成時にビットマップを初期化することです。

Q5: これらのグラフィックが最終的にサーフェスに移動し、最終的な構成のために surfaceflinger に渡されることは知っていました。私のコードのどこにありますか?

返信ありがとうございます。

4

3 に答える 3

8

5つの質問。どこで助けられるか見てみましょう。

Q1:Paintに長方形を塗りつぶすように伝えます。paint.setStyle(Paint.Style.FILL);

Q2: プログラムで作成した 1 つのビューしか表示されません。なぜビューをカウントしたいのですか?

Q3: もう一度: 1 つ

Q4: 可変ビットマップを でラップして描画しますCanvas。実際に描く方法は一部Canvas

Q5: あなたが示したコードはアクティビティの一部です。Activity は Android によって呼び出されます。これは、アプリへのエントリ ポイントです。

于 2013-09-22T17:47:58.320 に答える
0

Q2:Hierarchy Viewer は、アプリ内のビュー数をカウントしたい場合に非常に便利です。 UI の最適化

于 2013-09-23T03:35:29.180 に答える