当前位置: 代码迷 >> Android >> 如何在特定的LinearLayout中添加Canvas?
  详细解决方案

如何在特定的LinearLayout中添加Canvas?

热度:72   发布时间:2023-08-04 11:58:59.0

我是android的新来者而不是java。 我一直在通过XML文件在android中设计UI,在那个页面我有3个线性布局,在我的顶部布局(第一个LinearLayout)我保留了一些图像,在最后的布局中我保留了一些按钮,现在我需要放置一个在我的中心布局中使用canvas的圆圈(红色),我已经编写了一个单独的类,它扩展了View在onDraw(Canvas画布)中的位置,我画了一个圆圈。

package com.project.TargetTrackr3;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawCanvasCircle extends View{
    public DrawCanvasCircle(Context mContext) {
        super(mContext);
    }
    public void onDraw(Canvas canvas) {
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        canvas.drawColor(Color.WHITE);
        paint.setColor(Color.BLUE);
        canvas.drawCircle(20, 20, 15, paint);
    }

}

现在我必须将这个画布带到第二个布局,我的main.xml如下所示

package com.project.TargetTrackr3;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
public class TargetTrackr3Activity extends Activity {
    /** Called when the activity is first created. */
      protected LinearLayout ll;
      DrawCanvasCircle c;
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1); //layouting file 
        ll = (LinearLayout) findViewById(R.id.LinearLayout_DrawCircle);//This is where i have to bring the canvas
        c = new DrawCanvasCircle(this);
           ...................................
           ................................



    }
}

这是我做的包含你的观点。

首先向xml文件添加一个新布局,然后你可以检索它,然后你可以像这样添加它:

    DrawCanvasCircle pcc = new DrawCanvasCircle (this);
    Bitmap result = Bitmap.createBitmap(25, 25, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(result);
    pcc.draw(canvas);
    pcc.setLayoutParams(new LayoutParams(25, 25));
    mControls.addView(pcc);

在此示例中, mControls是添加到主活动布局的布局。