私は4つの同心円(レーダーエフェクト、もしあれば)を入れたいと思うRelativeLayoutを持っています。私はRelativeLayoutを隠して表示できるようにしたいので、CanvasとPaintを使ってRelativeLayoutに円を描画する方法を正確に知りたいと思います。誰かがどのように動作するかのライフサイクルを説明することができれば、それは非常に役に立ちます。今すぐ私は持っています:Android:基本的なサークルのアウトラインをRelativeLayoutに描画
setContentView(R.layout.applayout);
myRelLayout = (RelativeLayout) findViewById(R.id.RLRadar);
Canvas canvas = new Canvas();
Paint circlePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
circlePaint.setColor(0xFF000000);
circlePaint.setStyle(Style.STROKE);
canvas.drawCircle((float) centerX, (float) centerY, (float) (maxRadius/4), circlePaint);
私は正しいトラックにいますか?キャンバスをある種のImageViewに変換し、それをRelativeLayoutに追加する必要がありますか?それとも、私はここから完全に離れていますか?
ありがとうございました!
編集:ここに作業コードがあります。
// Add the radar to the RadarRL
Picture picture = new Picture();
Canvas canvas = picture.beginRecording(screenWidth, screenHeight);
// Draw on the canvas
Paint circlePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
circlePaint.setColor(0xFF000000);
circlePaint.setStyle(Style.STROKE);
circlePaint.setStrokeWidth((float) 5.0);
canvas.drawCircle((float) centerX, (float) centerY, (float) (maxRadius/4), circlePaint);
canvas.drawCircle((float) centerX, (float) centerY, (float) ((3 * maxRadius)/4), circlePaint);
canvas.drawCircle((float) centerX, (float) centerY, (float) (maxRadius/2), circlePaint);
canvas.drawCircle((float) centerX, (float) centerY, (float) (maxRadius), circlePaint);
picture.endRecording();
こんにちはティムは、私はこれを実装するが、何も私のRelativeLayoutに現れていない試してみました。私は使用したコードで元の投稿を編集しました。私が間違っていたことを特定できますか? – Rockmaninoff
Nevermindはそれを稼働させました! – Rockmaninoff
'setBackgroundDrawable'は非推奨です –