Czy można narysować ramkę wokół widoku tekstu?
android
android-layout
textview
jamspog
źródło
źródło
Odpowiedzi:
Można ustawić rysowany kształt (prostokąt) jako tło widoku.
I prostokąt rysowany back.xml (umieszczony w folderze res / drawable):
Możesz użyć
@android:color/transparent
jednolitego koloru, aby mieć przezroczyste tło. Możesz także użyć dopełnienia, aby oddzielić tekst od ramki. Aby uzyskać więcej informacji, zobacz: http://developer.android.com/guide/topics/resources/drawable-resource.htmlźródło
Pozwól, że streszczę kilka różnych (nieprogramowych) metod.
Używanie kształtu do rysowania
Zapisz następujące pliki jako plik XML w folderze do rysowania (na przykład my_border.xml):
Następnie ustaw go jako tło dla TextView:
Więcej pomocy:
Korzystanie z 9 łatek
9-łatka to rozciągliwy obraz tła. Jeśli utworzysz obraz z ramką, wówczas ramka TextView doda ramkę. Wszystko, co musisz zrobić, to zrobić obraz, a następnie ustawić go jako tło w TextView.
Oto kilka linków, które pokażą, jak zrobić obraz z 9 łatami:
Co jeśli chcę tylko górną ramkę?
Korzystanie z listy warstw
Możesz użyć listy warstw, aby ułożyć dwa prostokąty jeden na drugim. Ustawiając drugi prostokąt nieco mniejszy niż pierwszy prostokąt, można uzyskać efekt obramowania. Pierwszy (dolny) prostokąt to kolor obramowania, a drugi prostokąt to kolor tła.
Ustawienie
android:top="2dp"
powoduje przesunięcie góry (zmniejsza) o 2dp. Pozwala to na przejście pierwszego (dolnego) prostokąta, dając efekt obramowania. Możesz zastosować to do tłashape
TextView w taki sam sposób, jak powyżej.Oto kilka linków na temat list warstw:
Korzystanie z 9 łatek
Możesz po prostu zrobić obraz z 9 łatami z pojedynczą ramką. Cała reszta jest taka sama, jak omówiono powyżej.
Korzystanie z widoku
Jest to pewien podstęp, ale działa dobrze, jeśli chcesz dodać separator między dwoma widokami lub ramką do pojedynczego TextView.
Oto kilka innych linków:
źródło
border: 1px solid #999;
nie powinno być aż tak skomplikowane.Prostym sposobem jest dodanie widoku do TextView. Przykład dolnej linii granicznej:
Dla pozostałych granic kierunku zmień położenie widoku separatora.
źródło
Rozwiązałem ten problem, rozszerzając widok tekstu i ręcznie rysując ramkę. Dodałem nawet, abyś mógł wybrać, czy ramka ma być kropkowana czy przerywana.
A klasa graniczna:
Mam nadzieję, że to komuś pomoże :)
źródło
Właśnie patrzyłem na podobną odpowiedź - można to zrobić za pomocą pociągnięcia i następującego zastąpienia:
źródło
Możesz ustawić granicę na dwa sposoby. Jeden jest możliwy do rysowania, a drugi programowy.
Korzystanie z Drawable
Programowy
źródło
Najprostsze rozwiązanie, jakie znalazłem (i które faktycznie działa):
źródło
Znalazłem lepszy sposób na umieszczenie ramki wokół TextView.
Jako tło użyj obrazu z dziewięcioma łatami. To dość proste, zestaw SDK jest wyposażony w narzędzie do tworzenia obrazu z 9 łatkami i nie wymaga absolutnie żadnego kodowania.
Link to http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch .
źródło
Możesz dodać coś takiego w swoim kodzie:
źródło
Sprawdź poniższy link, aby zrobić zaokrąglone rogi http://androidcookbook.com/Recipe.seam?recipeId=2318
Folder rysowany, w res, w projekcie Androida nie jest ograniczony do map bitowych (plików PNG lub JPG), ale może także przechowywać kształty zdefiniowane w plikach XML.
Kształty te można następnie ponownie wykorzystać w projekcie. Za pomocą kształtu można umieścić ramkę wokół układu. Ten przykład pokazuje prostokątną ramkę z zakrzywionymi narożnikami. Nowy plik o nazwie customborder.xml zostanie utworzony w folderze wysuwnym (w Eclipse skorzystaj z menu Plik i wybierz Nowy, a następnie Plik, z zaznaczonym folderem rozwijalnym wpisz nazwę pliku i kliknij przycisk Zakończ).
Wprowadzono XML definiujący kształt obramowania:
Atrybut
android:shape
jest ustawiony na prostokąt (pliki kształtów obsługują również owal, linię i pierścień). Prostokąt jest wartością domyślną, więc ten atrybut można pominąć, jeśli jest definiowany prostokąt. Szczegółowe informacje na temat pliku kształtu można znaleźć w dokumentacji Androida dotyczącej kształtów na stronie http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape .Narożniki elementu ustawiają narożniki prostokąta do zaokrąglenia. Możliwe jest ustawienie innego promienia w każdym rogu (patrz odniesienie do Androida).
Atrybuty wypełnienia służą do przenoszenia zawartości Widoku, do którego zastosowano kształt, aby zapobiec nakładaniu się zawartości na ramkę.
Kolor obramowania jest tutaj ustawiony na jasnoszary (szesnastkowa wartość CCCCCC RGB).
Kształty obsługują również gradienty, ale nie jest to tutaj używane. Ponownie zobacz zasoby Androida, aby zobaczyć, jak zdefiniowany jest gradient. Kształt jest nakładany na układ za pomocą
android:background="@drawable/customborder"
.W obrębie układu inne widoki można dodać normalnie. W tym przykładzie dodano pojedynczy TextView, a tekst jest biały (szesnastkowy FFFFFF RGB). Tło jest ustawione na niebiesko, a także na pewien stopień przezroczystości w celu zmniejszenia jasności (wartość szesnastkowa alfa RGB A00000FF). Wreszcie układ jest odsunięty od krawędzi ekranu, umieszczając go w innym układzie z niewielką ilością wypełnienia. Pełny plik układu jest zatem:
źródło
Mam sposób, aby to zrobić bardzo prosto i chciałbym się tym podzielić.
Kiedy chcę wyrównać mi TextViews, po prostu umieszczam je w LinearLayout. Ustawiam kolor tła mojego LinearLayout i dodam margines do TextView. Rezultat jest dokładnie tak, jakbyś wyprostował TextView.
źródło
Zmiana odpowiedzi Konstantina Burowa, ponieważ nie działa w moim przypadku:
compileSdkVersion 26 (Android 8.0), minSdkVersion 21 (Android 5.0), targetSdkVersion 26, implementacja „com.android.support:appcompat-v7:26.1.0”, stopień: 4.1
źródło
Możesz utworzyć niestandardowe tło dla widoku tekstu. Kroki 1. Przejdź do swojego projektu. 2. Przejdź do zasobów i kliknij prawym przyciskiem myszy, aby wyświetlić. 3. Kliknij Nowy -> Plik zasobów do rysowania 4. Podaj nazwę pliku 5. Wklej następujący kod w pliku
W widoku tekstu, w którym chcesz go użyć jako tła,
android: background = "@ drawable / your_fileName"
źródło
Oto moja „prosta” klasa pomocnicza, która zwraca ImageView z ramką. Po prostu upuść to w folderze utils i nazwij tak:
Oto kod.
źródło
selectionBorder
?To może ci pomóc.
źródło
Utwórz widok obramowania z kolorem tła jako kolorem obramowania i rozmiarem widoku tekstowego. ustaw dopełnienie widoku ramki jako szerokość ramki. Ustaw kolor tła widoku tekstu jako żądany kolor dla widoku tekstu. Teraz dodaj widok tekstu do widoku obramowania.
źródło
Spróbuj tego:
źródło
Istnieje wiele sposobów dodawania ramki do textView. Najprostszy polega na utworzeniu niestandardowego rysunku i ustawieniu go tak, jak w
android:background="@drawable/textview_bg"
przypadku textView.Textview_bg.xml przejdzie pod Drawables i może być coś takiego. Możesz mieć tło
solid
lubgradient
tło (lub nic, jeśli nie jest to wymagane),corners
aby dodać promień narożnika istroke
dodać ramkę.textview_bg.xml
źródło
ten kod wystarczy, aby umieścić go w dowolnym miejscu
źródło
setBackground w widoku tekstowym xml,
dodaj plik rounded_textview.xml do swojego katalogu do rysowania.
ustaw plik do rysowania w tle tekstu.
źródło
W rzeczywistości jest to bardzo proste. Jeśli chcesz mieć prosty czarny prostokąt za Textview, po prostu dodaj
android:background="@android:color/black"
wewnątrz tagów TextView . Lubię to:źródło