PDA

View Full Version : تعیین مختصات کارکترهای یک رشته در Canvas



ASKaffash
چهارشنبه 03 آبان 1396, 10:11 صبح
سلام
من یک گرید با Canvas طراحی کرده ام حالا می خواهم یک بخش از متن را که با DrawText روی یک Canvas را ترسیم شده رنگی کنم مثل شکل ذیل خیلی هم نت را جستجو کردم هیچ ردی پیدا نکردم من تو #C اینکار را انجام دادم کسی من تواند یک راهنمائی کند با چه متدی در Canvas یا Paint می توان بعد از ترسیم مختصات کارکترهای چاپ شده را بدست آورد ؟
ممنون از همه

#root#
جمعه 05 آبان 1396, 19:37 عصر
خب چرا زمانی که متن draw میشه همین کار رو نمی کنید؟

یا به همون روشی که مختصاتی برای ترسیم متن پیدا میکنید همون رو برای رنگی کردن هم تکرار کنید.

ASKaffash
شنبه 06 آبان 1396, 07:13 صبح
سلام
همان موقع می خواهم اینکار را انجام دهم باید بتوانم مختصات متن کوچک را تشخیص دهم متن اصلی که در مختصات x,y که Draw می شود متن کوچک 'x آن چقدر می شود؟ در #C یک متد وجود دارد که مختصات تک تک کارکترها را بصورت یک آریه بعد از ترسیم Draw اعلام می کند بنظر مشابه این متد باید در Java هم باشد

ASKaffash
چهارشنبه 10 آبان 1396, 10:35 صبح
سلام
خودم جوابش را پیدا کردم متد measureText یک OveLoad برای اندازه گیری این موضوع دارد اینجا گذاشتم تا بدرد دیگران هم بخورد

mTextPaint.setStyle(Paint.Style.FILL);
mTextPaint.setTextSize(57.3f);
float mW1 = mTextPaint.measureText(txt, 0, 4);
float mW2 = mTextPaint.measureText(txt, 0, 7 + 1);
mTextPaint.setColor(Color.YELLOW);
canvas.drawRect(mLeft + mW1, mTop-40, mLeft + mW2, mTop, mTextPaint);
mTextPaint.setColor(Color.BLUE);
canvas.drawText(txt, mLeft, mTop, mTextPaint);