将 drawing/painting 功能添加到我的 activity/fragments
Add drawing/painting functionality to my activity/fragments
我对如何向现有系统添加 drawing/painting 功能感到困惑。我有一个 Activity 通过标签栏控制 3 个片段,我希望能够在我的应用程序的片段屏幕上添加 drawing/painting。我的片段已经有了自己的 views/layout,带有复选框、文本视图等。
有人知道我该怎么做吗?
是的,你可以。并且有一些库可以让您轻松地做到这一点。
请试试这些,
我相信这会对您有所帮助。您可以选择直接在您的应用程序中使用这些库,也可以从它们的源代码中学习并实现您自己的库。
但我相信这些资源足以解决您的问题。
编辑
以CanvasView
、
的具体例子为例
将此放入您的片段 XML,
<com.android.graphics.CanvasView
android:id="@+id/canvas"
android:layout_width="280dp"
android:layout_height="280dp"
android:layout_gravity="center_horizontal" />
像这样在代码中引用视图,
public class DrawActivity extends Activity {
private CanvasView canvas = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_draw);
// Create the instance of CanvasView
this.canvas = (CanvasView)this.findViewById(R.id.canvas);
}
// ....
}
您可以尝试各种自定义,
this.canvas.setDrawer(CanvasView.Drawer.PEN); // Use Pen Tool
this.canvas.setDrawer(CanvasView.Drawer.LINE); // Draw Line
this.canvas.setDrawer(CanvasView.Drawer.RECTANGLE); // Draw Rectangle
this.canvas.setDrawer(CanvasView.Drawer.CIRCLE); // Draw Circle
this.canvas.setDrawer(CanvasView.Drawer.ELLIPSE); // Draw Ellipse (Oval)
this.canvas.setDrawer(CanvasView.Drawer.QUADRATIC_BEZIER); // Draw Quadratic Bezier
还有这些,
this.canvas.setPaintStyle(Paint.Style.STROKE);
this.canvas.setPaintStyle(Paint.Style.FILL);
this.canvas.setPaintStyle(Paint.Style.FILL_AND_STROKE);
您可以尝试许多其他自定义设置。请查看我提供给您的资源。
希望对您有所帮助。
我对如何向现有系统添加 drawing/painting 功能感到困惑。我有一个 Activity 通过标签栏控制 3 个片段,我希望能够在我的应用程序的片段屏幕上添加 drawing/painting。我的片段已经有了自己的 views/layout,带有复选框、文本视图等。
有人知道我该怎么做吗?
是的,你可以。并且有一些库可以让您轻松地做到这一点。
请试试这些,
我相信这会对您有所帮助。您可以选择直接在您的应用程序中使用这些库,也可以从它们的源代码中学习并实现您自己的库。
但我相信这些资源足以解决您的问题。
编辑
以CanvasView
、
将此放入您的片段 XML,
<com.android.graphics.CanvasView
android:id="@+id/canvas"
android:layout_width="280dp"
android:layout_height="280dp"
android:layout_gravity="center_horizontal" />
像这样在代码中引用视图,
public class DrawActivity extends Activity {
private CanvasView canvas = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_draw);
// Create the instance of CanvasView
this.canvas = (CanvasView)this.findViewById(R.id.canvas);
}
// ....
}
您可以尝试各种自定义,
this.canvas.setDrawer(CanvasView.Drawer.PEN); // Use Pen Tool
this.canvas.setDrawer(CanvasView.Drawer.LINE); // Draw Line
this.canvas.setDrawer(CanvasView.Drawer.RECTANGLE); // Draw Rectangle
this.canvas.setDrawer(CanvasView.Drawer.CIRCLE); // Draw Circle
this.canvas.setDrawer(CanvasView.Drawer.ELLIPSE); // Draw Ellipse (Oval)
this.canvas.setDrawer(CanvasView.Drawer.QUADRATIC_BEZIER); // Draw Quadratic Bezier
还有这些,
this.canvas.setPaintStyle(Paint.Style.STROKE);
this.canvas.setPaintStyle(Paint.Style.FILL);
this.canvas.setPaintStyle(Paint.Style.FILL_AND_STROKE);
您可以尝试许多其他自定义设置。请查看我提供给您的资源。
希望对您有所帮助。