Canvas标签
说明
Canvas画布组件,可以自己画出很多想要的效果
适合 EC 6.8.0+
使用示例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:android="http://schemas.android.com/apk/res/android" xsi:noNamespaceSchemaLocation="layout.xsd" android:layout_height="match_parent" android:layout_width="match_parent" android:background="#336699" android:orientation="vertical" android:padding="20dp">
<Canvas android:tag="ca" android:cornerRadius="24dp" android:background="#88000000" android:textColor="#ffffff" android:layout_width="match_parent"/>
</LinearLayout>UI中的用法(ui.js)
//绘制区间var minX = -5;var maxX = 5;var minY = -10;
//画笔var paint = new android.graphics.Paint();//要绘制的函数,这里是一个一元二次函数var f = function (x) { return x * x + 3 * x - 4;}
function main() { ui.layout("ddd", "f.xml") logd(ui.ca);
ui.ca.onDraw(function (canvas) { logd("==> " + canvas); var w = canvas.getWidth(); var h = canvas.getHeight(); //计算y轴区间上限 var maxY = minY + (maxX - minX) * h / w; //设置画笔颜色为黑色 paint.setColor(android.graphics.Color.parseColor("#000000")); //绘制两个坐标轴 canvas.drawLine(w / 2, 0, w / 2, h, paint); canvas.drawLine(0, h / 2, w, h / 2, paint); //设置画笔颜色为红色 paint.setColor(android.graphics.Color.parseColor("#ff0000")); //绘制图像 for (var i = 0; i < w; i++) { var x = minX + i / w * (maxX - minX); var y = f(x); var j = h - (y - minY) / (maxY - minY) * h; canvas.drawPoint(i, j, paint); } })}
main();属性说明
公有属性
请参考 公有属性
私有属性
| 属性名 | 说明 | 可选值 |
|---|---|---|
| layout_weight | 子元素权重 | 数字 当父级为LinearLayout的时候,子控件可以设置权重 |
| fillViewport | 填充所有视图 | true: 是 false:否 |