hyb1996 2016-02-28 13:06 采纳率: 50%
浏览 1945
已采纳

android 画一对漂亮的括号

android 画一对漂亮的括号。是()() 这种括号。注意是在canvas上画出来的 ,不是用字符代替的。
这是因为我需要根据需要不同尺寸的括号。但是用drawArc画出的括号很丑。以下是主要代码。如何才能画一个比较漂亮的括号呢。

  public static final int bracketWidth = ViewTools.dip2px(7);
    private static Paint bracketPaint = new Paint();
    static {
        bracketPaint.setStrokeWidth(ViewTools.dip2px(1.5f));
        bracketPaint.setStyle(Paint.Style.STROKE );
    }
    public static void drawLeftBracket(Canvas canvas, int x, int y, int height) {
        x += bracketWidth / 2;
        RectF rect = new RectF(x, y, x + bracketWidth, y + height);
        canvas.drawArc(rect, 90, 180, false, bracketPaint);
    }
  • 写回答

4条回答

  • hyb1996 2016-03-04 07:12
    关注

    问题解决了。采用一张比较大的PNG括号图片,根据需要进行放缩节OK。

    
    private static final int textBracketMaxHeight = ViewTools.dip2px(20);
        private static final int textBracketMaxWidth = ViewTools.dip2px(10);
    
     public static void drawLeftBracketPng(Canvas canvas, int x, int y,
                int height){
            Bitmap btp;
            if (height > textBracketMaxHeight) {
                btp = ViewTools.zoom(leftBracketPng, textBracketMaxWidth, height);
            }else{
                float scale = (float)height/leftBracketPng.getHeight();
                btp = ViewTools.zoom(leftBracketPng, scale, scale);
            }
            canvas.drawBitmap(btp, x, y, new Paint());
        }
        public static void drawRightBracketPng(Canvas canvas, int x, int y,
                int height){
            Bitmap btp;
            if (height > textBracketMaxHeight) {
                btp = ViewTools.zoom(rightBracketPng, textBracketMaxWidth, height);
            }else{
                float scale = (float)height/rightBracketPng.getHeight();
                btp = ViewTools.zoom(rightBracketPng, scale, scale);
            }
            canvas.drawBitmap(btp, x, y, new Paint());
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器