第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android drawText 在指定位置進行畫文字

標(biāo)簽:
Android

首先 祭出  这个和 咱们  认知不同 的坐标系

首先 祭出  这个和 咱们  认知不同 的坐标系5bab95ac000184c108190460.jpg

图画的很性感。自娱自乐 哈哈!

下一张图 是在网上好多地方都有的,可以搜搜去看下具体的5bab95ad000104b804580076.jpg

我这里要说的是

canvas.drawText( text, x,y, textPaint);  

这个方法 

这里的x,y 就是图里面的小红点

我项目中的应用

5bab95ad0001e30e03360331.jpg

网上很多 文字在中间的 我找了一个 在里面改了改 供大家参考

在1080*1920 和720*1280 上瞧着 是没啥问题,有看到和遇到这个的同学,如果有什么问题的可以告诉我哦 谢谢~-~


[代码]java代码:

?

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

047

048

049

050

051

052

053

054

055

056

057

058

059

060

061

062

063

064

065

066

067

068

069

070

071

072

073

074

075

076

077

078

079

080

081

082

083

084

085

086

087

088

089

090

091

092

093

094

095

096

097

098

099

100

@Override

    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);

 

        /**

         *   画最外层的大圆环

         */

        int centre = getWidth() / 2; //获取圆心的x坐标

        int radius = (int) (centre - roundWidth / 4);   //圆环的半径

        paint.setColor(roundColor);   //设置圆环的颜色

        paint.setStyle(Paint.Style.STROKE);   //设置空心

        paint.setStrokeWidth(roundWidth   / 5); //设置圆环的宽度

        paint.setAntiAlias(true);    //消除锯齿

        canvas.drawCircle(centre,   centre, radius, paint); //画出圆环

 

        Log.e("log",   centre + "");

 

        /**

         *   画进度百分比文字

         */

        paint.setStrokeWidth(0);

        paint.setColor(textColor);

        if (upTextSize != null) {

            paint.setTextSize(

                    SizeUtils.sp2px(getIntstance().getApplicationContext(),   upTextSize));

        }   else {

            paint.setTextSize(50);

        }

        paint.setStyle(Paint.Style.FILL);   //设置字是空心还是实心

        paint.setTypeface(Typeface.DEFAULT_BOLD);   //设置字体

        int percent;

        if (withPercent) {

            percent   = (int) (((float) progress / (float) max) * 100);  //中间的进度百分比,先转换成float在进行除法运算,不然都为0

        }   else {

            percent   = progress;

        }

        float textWidth;

        if (withPercent) {

            textWidth   = paint.measureText(percent + "%");   //测量字体宽度,我们需要根据字体的宽度设置在圆环中间

        }   else {

            textWidth   = paint.measureText(changeCountToK(progress) + "");   //测量字体宽度,我们需要根据字体的宽度设置在圆环中间

        }

        if (textIsDisplayable && style ==   STROKE) {

            if (withPercent) {

                canvas.drawText(percent   + "%", centre - textWidth / 2, centre - 10, paint); //画出进度百分比

            }   else {

                canvas.drawText(percent   + "", centre - textWidth / 2 - 8, centre + 20, paint); //画出进度百分比

            }

        }

        /**

         *   画进度比下的文字

         */

        paint.setStrokeWidth(0);

        try {

            paint.setColor(ContextCompat.getColor(getIntstance().getApplicationContext(),   R.color.text_gray));

        }   catch (NullPointerException   e) {

            e.printStackTrace();

        }

        if (downTextSize != null) {

            paint.setTextSize(SizeUtils.sp2px(getIntstance().getApplicationContext(),   downTextSize));

        }   else {

            paint.setTextSize(35);

        }

        paint.setTypeface(Typeface.DEFAULT);   //设置字体

        float textWidth2 =   paint.measureText(textPercent);   //百分比下面的文字的高度

        float txH2 = paint.getFontMetrics().descent -   paint.getFontMetrics().ascent;//第二行汉子的高度

        if (textIsDisplayable && style ==   STROKE) {

            if (withPercent) {

                canvas.drawText(textPercent,   centre - textWidth2 / 2 + 2, centre + txH2, paint); //

            }   else {

                canvas.drawText(textPercent,   centre - textWidth / 2 + textWidth + 2, centre + 20, paint); //

            }

        }

 

 

        /**

         *   画圆弧 ,画圆环的进度

         */

 

        //设置进度是实心还是空心

        paint.setStrokeWidth(roundWidth   / 5); //设置圆环的宽度

        paint.setColor(roundProgressColor);    //设置进度的颜色

        RectF   oval = new RectF(centre   - radius, centre - radius, centre

                +   radius, centre + radius);  //用于定义的圆弧的形状和大小的界限

 

        switch (style) {

            case STROKE: {

                paint.setStyle(Paint.Style.STROKE);

                canvas.drawArc(oval,   0, 360 *   progress / max, false, paint);  //根据进度画圆弧

                break;

            }

            case FILL: {

                paint.setStyle(Paint.Style.FILL_AND_STROKE);

                if (progress != 0)

                    canvas.drawArc(oval,   0, 360 *   progress / max, true, paint);  //根据进度画圆弧

                break;

            }

        }

 

    }

原文链接:http://www.apkbus.com/blog-795429-62577.html

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消