637 Stimmen

Wie kann man ein Layout mit abgerundeten Ecken erstellen?

Wie kann ich ein Layout mit abgerundeten Ecken erstellen? Ich möchte abgerundete Ecken auf meine LinearLayout .

4voto

paezinc Punkte 347
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF"/>
    <stroke android:width="3dip" android:color="#B1BCBE" />
    <corners android:radius="10dip"/>
    <padding android:left="3dip" android:top="3dip" android:right="3dip" android:bottom="3dip" />
</shape>

@David, setzen Sie einfach Padding auf den gleichen Wert wie Stroke, damit der Rand sichtbar ist, unabhängig von der Bildgröße.

3voto

ucMedia Punkte 3132

Wenn Sie nur eine einfaches abgerundetes Rechteck um es kurz zu machen.

float r=8;
ShapeDrawable shape = 
   new ShapeDrawable (new RoundRectShape(new float[] { r, r, r, r, r, r, r, r },null,null));
shape.getPaint().setColor(Color.RED);
view.setBackground(shape);

android rounded rectangle shape

  • Die ersten beiden Floats sind für die linke obere Ecke (die restlichen Paare entsprechen dem Uhrzeigersinn).

für weitere Details lesen Sie diese Antwort

2voto

Yokich Punkte 1187

Ich bin zwar ein bisschen spät dran, aber das ist immer noch ein Problem. Also schrieb ich eine Reihe von OutlineProvider und BindingAdapter für Datenbindung, die Sie Ecken von Xml Clip ermöglicht.

HINWEIS: Beim Ausschneiden mit Umriss können die Ecken nicht unterschiedlich groß sein!

Ich habe eine ausführliche Antwort mit Code auf dieser Stackoverflow-Beitrag

Was Sie mit Code + Bindungsadapter erhalten:

<androidx.constraintlayout.widget.ConstraintLayout
    clipRadius="@{@dimen/some_radius}"
    clipBottomLeft="@{@dimen/some_radius}"
    clipBottomRight="@{@dimen/some_radius}"
    clipTopLeft="@{@dimen/some_radius}"
    clipTopRight="@{@dimen/some_radius}"
    clipCircle="@{@bool/clip}"

Damit können Sie die Ansicht auf einen Kreis beschränken, alle Ecken abrunden, Ecken in einer Richtung (links, oben, rechts, unten) oder einzelne Ecken abrunden.

0voto

Ali Rezaiyan Punkte 2423

Sie können dies mit einer benutzerdefinierten Ansicht wie der folgenden tun RoundAppBar y RoundBottomAppBar . Hier ein path wird verwendet, um clipPath die Leinwand.

Round Corner View

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X