Mai mult
Cum de a face layout-ul cu colțuri rotunjite..?
Cum pot face un aspect cu colturi rotunjite? Vreau să se aplice colturi rotunjite pentru a-mi LinearLayout
.
463
16
1: Defini layout_bg.xml în drawables:
2: Adauga
layout_bg.xml
ca fundal pentru layoutPentru API 21+, Utilizați Clip Views
Rotunjite conturul de decupare a fost adăugat la "Vedere", în clasa API 21. Vezi asta formare doc sau asta referință pentru mai multe informații.
Această în-a construit caracteristică face colțuri rotunjite foarte ușor să pună în aplicare. Acesta funcționează pe orice ecran sau layout și sprijină buna de tăiere.
Aici's Ce Sa Fac:
Din păcate, nu pare a fi un bug]3 și acest atribut XML în prezent nu este recunoscut. Din fericire, putem seta tăiere în Java:
Vedere.setClipToOutline(adevărat)
Ceea Ce Se Pare Ca:
Notă Specială Despre ImageViews
setClipToOutline()
funcționează numai atunci când punctul de Vedere's de fundal este setată la o forma drawable. Dacă acest context formă există, Vedere tratează fundal's schiță ca frontierele pentru tăiere și umbrire scopuri.Acest lucru înseamnă că, dacă doriți pentru a rotunji colturile pe un ImageView cu setClipToOutline()
, imaginea ta trebuie să vină de la android:src "în loc de" android:fond
(din fundal este folosit pentru a forma rotunjită). Dacă TREBUIE să utilizați de fundal pentru a seta imaginea ta în loc de src, puteți utiliza această imbricate vedere soluție:Aici's o copie a unui fișier XML pentru a crea un drawable, cu un fundal alb, chenar negru și colțuri rotunjite:
salvați-l ca un fișier xml în drawable director, Folositi-l ca tine ar folosi orice drawable fundal(pictograma sau resource file) folosind numele resursei (R. drawable.your_xml_name)
Utilizarea CardView în android v7 support library. Deși l's un pic greu, rezolvă problema, și destul de ușor. Nu ca set drawable fundal metodă, s-ar putea clip subviews cu succes.
Am făcut așa:
Verificați Screenshot:
Crea drawable fișier numit cu custom_rectangle.xml` în drawable folder:
Aplica acum Dreptunghi de fundal pe Vezi:
Facut
Cred că o modalitate mai bună de a face asta este de a merge de 2 lucruri:
face un bitmap de layout-ul, așa cum se arată [aici][1].
face o rotunjire drawable din bitmap, așa cum se arată [aici][2]
setați drawable pe un imageView.
Aceasta se va ocupa de cazuri în care alte soluții nu au reușit să rezolve, cum ar fi având un conținut care are colțuri.
Cred că's, de asemenea, un pic mai mult GPU-friendly, cum se prezinta un singur strat în loc de 2 .
Singura modalitate mai bună este de a face un complet personalizate vedere, dar care's o mulțime de cod și poate lua o mulțime de timp. Cred că ceea ce am sugerat aici este cel mai bun din ambele lumi.
Aici's un fragment de cum se poate face:
RoundedCornersDrawable.java
CustomView.java
Încercați acest...
1.crea drawable xml(custom_layout.xml):
2.adauga opinia dumneavoastră fundal
Dacă doriți pentru a face aspectul rotunjit, cel mai bine este să utilizați CardView, aceasta a oferit mai multe caracteristici pentru a face un design frumos.
Cu acest card_view:cardCornerRadius="5dp", puteți modifica raza.
Funcție pentru a seta raza de colț programatic
Folosind
Un mod mai bun de a face aceasta ar fi:
background_activity.xml
Acest lucru va lucra de mai jos API 21 de asemenea, și-ți dau ceva de genul asta:
Dacă sunteți dispuși să facă un pic mai mult efort, mai bine de control, apoi folosesc android.sprijin.v7.widget.CardView
cu
cardCornerRadiusatribut (și a stabilit
altitudineatribut
0dp` pentru a scăpa de orice însoțire drop shadow cu cardView). De asemenea, acest lucru va funcționa la nivel de API 15.Utilizarea CardView pentru a obține margini rotunjite pentru orice machete. Utilizare card_view:cardCornerRadius="5dp" pentru cardview pentru a obține rotunjite layout margini.
Cea mai bună și mai simplă metodă ar fi de a utiliza card_background drawable în layout. Aceasta urmează, de asemenea, Google's liniile directoare de proiectare materiale. Doar includ asta în tine LinearLayout:
Adăugați acest la drawable directorul și numele card_background.xml:
@David, pune umplutură aceeași valoare ca și accident vascular cerebral, atât de frontieră pot fi vizibile, regardeless dimensiunea imaginii
Am'am luat @gauravsapiens răspuns cu comentariile mele de interior pentru a oferi un reținerea de ce parametri vor afecta.
Daca're în căutarea doar pentru a crea o forma care runde colțuri, eliminarea umplutură și accident vascular cerebral va face. Dacă scoateți solid precum va fi, în fapt, au creat colturi rotunjite pe un fundal transparent.
De dragul de a fi leneș, am creat o formă de dedesubt, care este doar un solid fundal alb, cu colțuri rotunjite - bucurați-vă! :)
Creați-vă xml în drawable,
layout_background.xml
și apoi, trebuie să adăugați această în
layout.xml
</formă>