android - 向我的 Activity/fragment 添加绘图/绘画功能

标签 android android-fragments android-view

我对如何向现有系统添加绘图/绘画功能感到困惑。我有一个通过选项卡栏控制 3 个 fragment 的 Activity ,我希望能够在我的应用程序的 fragment 屏幕上添加绘图/绘画。我的 fragment 已经有了自己的 View /布局,包括复选框、 TextView 等。

有人知道我该怎么做吗?

最佳答案

是的,你可以。并且有一些库可以让您轻松地做到这一点。

请试试这些,

我相信这会对你有所帮助。您可以选择直接在您的应用程序中使用这些库,也可以从它们的源代码中学习并实现您自己的库。

但我相信这些资源足以解决您的问题。

编辑

CanvasView为例,

将其放入您的 fragment XML 中,

<com.android.graphics.CanvasView
    android:id="@+id/canvas"
    android:layout_width="280dp"
    android:layout_height="280dp"
    android:layout_gravity="center_horizontal" />

像这样在代码中引用 View ,

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

您可以尝试许多其他自定义设置。只需查看我提供给您的资源即可。

希望对您有所帮助。

关于android - 向我的 Activity/fragment 添加绘图/绘画功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369434/

相关文章:

java - "Don' t Keep Activities“打开时找不到 ID 的 View

android - LinearLayout 不渲染

android - 在 ViewAnimator 中的按钮上执行(单击())后,Espresso 测试卡住/不活动

android - 为什么我的应用程序在升级后会出现两个图标?

java - 将当前 fragment 添加到backstack : Android

java - 公共(public)方法对同一包中的其他类不可见

android - findViewById() 在非 MainActivity 类中不起作用

android - SQLite 选择所有表 DESC

android - 加载 XML 文件抛出 RuntimeException

android - 使用抽屉导航时管理后退按钮行为的准则是什么?