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 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序