我创建了一个布局,其中包含一些视图,还包含一个用于绘制图形的 linearlayout
main_page_layout.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/bgcolor" android:id="@+id/main_page_layout" > .... <linearlayout android:id="@+id/graphicview" android:layout_width="match_parent" android:layout_height="196dp" android:layout_margintop="64dp" android:layout_marginleft="0dp" android:layout_marginright="0dp" android:background="@color/white" android:orientation="horizontal" app:layout_constraintend_toendof="parent" app:layout_constraintleft_toleftof="parent" app:layout_constrainttop_tobottomof="@id/menulayout" /> ... </androidx.constraintlayout.widget.constraintlayout>
我正在尝试使用名为 graphplotter 的自定义类在其上绘制图形
graphplotter.java
public class graphplotter extends view { private paint paint = null; private bitmap bitmap; private canvas canvas; public graphplotter(context context) { super(context); this.init(); } /* initiates graph plotter */ private void init() { this.paint = new paint(); this.paint.setcolor(color.blue); this.paint.setstrokewidth(5); this.paint.setstyle(paint.style.fill_and_stroke); // create a bitmap and a canvas associated with the bitmap this.bitmap = bitmap.createbitmap(1000, 1000, bitmap.config.argb_8888); this.canvas = new canvas(bitmap); } public void setcolor(int color) { this.paint.setcolor(color); invalidate(); // force a redraw } /* draws a line with a custom color */ public void drawline(float starx, float starty, float stopx, float stopy,int color) { this.setcolor(color); this.canvas.drawline(starx, starty, stopx, stopy, this.paint); } ........
这是我要画的活动
mainpageactivity.java
public class MainPageActivity extends AppCompatActivity { private ConnectionHelper connectionHelper = null; private SQLQuery sqlQuery = null; private Person person = null; private TextView txtID = null; private RecyclerView recyclerView = null; private final ProductAdapter productAdapter = null; private AsyncTaskRunner asyncTaskRunner = null; private ViewHolder viewHolder = null; private Spinner graphicTypeSpinner = null; private Button menuButton = null; private ConstraintLayout menuView = null; private List<Product> productList = null; private GraphPlotter graphPlotter = null; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); // necessary for onCreate function setContentView(R.layout.main_page_layout); // R = resource , R.layout => layouts directory init(); LinearLayout graphicView = (LinearLayout) findViewById(R.id.graphicView); graphPlotter = new GraphPlotter(this); graphPlotter.drawAxisX(159,159,259, Color.BLUE); graphicView.addView(graphPlotter); } ........... ...................
但我看不到任何线或轴。
我想使用画布为产品绘制图形,但看不到任何结果,我的类或代码有什么问题
正确答案
将绘制行为放入 ondraw() 函数中
@Override protected void onDraw(Canvas canvas) { drawLine(...); drawAxisX(); }
以上是我可以在其他功能中使用 Canvas 元素来显示在视图上吗的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

禅工作室 13.0.1
功能强大的PHP集成开发环境