Lucrul cu tcanvas în delphi pentru Android

Bazându-se pe TCanvas în Delphi XE5 pentru Android așa cum se dovedește are unele caracteristici care sunt introduse la începutul mine în ușoară confuzie, și care doresc să împartă.

Desenați mai multe linii paralele.

Aici aș dori să divaghez și rețineți că, în mod implicit pentru Windows Stroke.Kind este bkSolid, dar sub Android - bkNone. Asta este, dacă nu setați în mod explicit valoarea Stroke.Kind, linia va fi vizibil sub Windows, dar nu și pentru Android. Nu știu ce s-ar putea numi o astfel de abordare.

Asta e ceea ce am primit:

Lucrul cu tcanvas în delphi pentru Android

Evident, unele dintre liniile au dovedit mai groase decât altele. Același cod pentru Windows funcționează perfect.

Motivul pentru aceasta este faptul că, în Spre deosebire de Windows, logica Android pixeli nu coincide întotdeauna cu fizice. Și linia, prins între pixelii fizici „erodate“ de la adiacente, pentru a fi vizibile. Astfel, un compromis între precizia și calitatea de redare.

În cazul în care, cu toate acestea, aveți nevoie pentru a trage aceeași linie, le puteți muta la jumătate din grosimea pentru a se asigura că acestea intra în pixeli fizici.

Aceasta rezolvă problema componentei așa-TLine și TShape său strămoș:

Prin schimbarea codului corect, puteți obține aceleași linii:

Lucrul cu tcanvas în delphi pentru Android

Aceasta schimbare nu poate fi întotdeauna în mod automat: într-un astfel de caz inexactitatea coordonatele va duce la salturi în animații. Dar totuși aș dori să văd un fel de pavilion, care să permită trecerea alegerea între frumusețe și de precizie pentru a FireMonkey. Mai degrabă obositoare în mod constant să o faci singur.

Alysson Cunha a sugerat o altă abordare a problemei: