qq_36522073 2017-04-05 06:27 采纳率: 50%
浏览 565
已结题

自定义View画正六边形,显示错误

代码:@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width = getMeasuredWidth();
height = getMeasuredHeight();
Log.e("TAG", "OnMeasure" + ":" + width + ":" + height + "||" + widthMeasureSpec + ":" + heightMeasureSpec);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

// height = getHeight();
float w = 100; //width为屏幕宽 取1/2为边长
float h = (float) Math.sqrt(3) * w; //高 根号3倍边长
path.moveTo((1 / 2) * w, 0);
path.lineTo(0, h / 2);
path.lineTo((1 / 2) * w, h);
path.lineTo((3 / 2) * w, h);
path.lineTo(2 * w, h / 2);
path.lineTo((3 / 2) * w, 0);
path.lineTo((1 / 2) * w, 0);
path.close();
canvas.drawPath(path, paint);
Log.e("TAG", "执行到这里2" + "::" + w + "||" + h);
}
之前我是使用屏幕的宽来作为六边形的边长的,后来显示错误我就写死边长为100,然并卵,下面是效果图和XML代码。
XML代码: android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

宽高我之前也试过写死固定的值还是不行。
效果图:图片说明
到底是怎么回事啊?大神求救!!!!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 cad图纸,chx-3六轴码垛机器人
    • ¥15 移动摄像头专网需要解vlan
    • ¥20 access多表提取相同字段数据并合并
    • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
    • ¥20 Java-Oj-桌布的计算
    • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
    • ¥20 有人知道这种图怎么画吗?
    • ¥15 pyqt6如何引用qrc文件加载里面的的资源
    • ¥15 安卓JNI项目使用lua上的问题
    • ¥20 RL+GNN解决人员排班问题时梯度消失