Allen Lu~ 2015-11-09 06:13 采纳率: 50%
浏览 2823
已采纳

小白求RadioButton图片居中方法~大神进来看图

如题图片说明

  • 写回答

7条回答 默认 最新

  • sanxiaochengyu 2015-11-09 08:43
    关注

    在论坛里面也回复你了

       @Override
        protected void onDraw(Canvas canvas) {
            Drawable[] drawables = getCompoundDrawables();
            if (drawables != null) {
                Drawable drawableTop = drawables[1];
                if (drawableTop != null) {
                    float textHeight=measureHeight(getText().toString());
                    int drawablePadding = getCompoundDrawablePadding();
                    int drawableHeight = drawableTop.getIntrinsicHeight();
                    float bodyHeight = textHeight + drawableHeight + drawablePadding;
                    setPadding(0, (int)(getHeight() - bodyHeight), 0, 0);
                    canvas.translate(0, 0-(getHeight() - bodyHeight) / 2);
                }
            }
            super.onDraw(canvas);
        }
    
        //获取文本高度
        public int measureHeight(String text) {
    //        Rect result = new Rect();
    //        // Measure the text rectangle to get the height
    //        getPaint().getTextBounds(text, 0, text.length(), result);
    //        return  result.height();
            Paint.FontMetrics fontMetrics= getPaint().getFontMetrics();
    
            return (int)(fontMetrics.descent-fontMetrics.ascent+ fontMetrics.leading);
        }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料