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

Posted

技术标签:

【中文标题】如何在特定的 LinearLayout 中添加 Canvas?【英文标题】:How to add Canvas in a specific LinearLayout? 【发布时间】:2011-03-21 00:15:28 【问题描述】:

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

包 com.project.TargetTrackr3; 导入android.content.Context; 导入android.graphics.Canvas; 导入android.graphics.Color; 导入android.graphics.Paint; 导入android.view.View; 公共类 DrawCanvasCircle 扩展视图 公共DrawCanvasCircle(上下文mContext) 超级(mContext); 公共无效onDraw(帆布画布) 油漆油漆 = 新油漆(); paint.setStyle(Paint.Style.FILL); canvas.drawColor(Color.WHITE); paint.setColor(Color.BLUE); canvas.drawCircle(20, 20, 15, 油漆);

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

包 com.project.TargetTrackr3; 导入android.app.Activity; 导入android.content.Context; 导入android.graphics.Canvas; 导入 android.graphics.ColorFilter; 导入 android.graphics.drawable.Drawable; 导入android.os.Bundle; 导入android.view.View; 导入 android.widget.LinearLayout; 公共类 TargetTrackr3Activity 扩展 Activity /** 在第一次创建活动时调用。 */ 受保护的线性布局 ll; DrawCanvasCircle c; 公共无效 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); 设置内容视图(R.layout.main1); //布局文件 ll = (LinearLayout) findViewById(R.id.LinearLayout_DrawCircle);//这里是我要带画布的地方 c = new DrawCanvasCircle(this); ................................................... ...................................

【问题讨论】:

【参考方案1】:

这是我为包含您的观点所做的。

首先为您的 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 是添加到主活动布局的布局。

【讨论】:

嗨,请问您如何将它放在 mControls 的中心?

以上是关于如何在特定的 LinearLayout 中添加 Canvas?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ScrollView 内的 LinearLayout 底部放置按钮

如何动态添加多个TextView到main.xml中定义的LinearLayout

Android - LinearLayout:如何在项目之间添加自动空间以水平填充布局

Android:如何将 LinearLayout 的内容垂直包装在 TableRow 中?

从Android中的LinearLayout中删除视图时出现异常

如何将 RecyclerView 添加到 LinearLayout(高度问题)