Android metin görünümünün çevresine nasıl kenarlık koyabilirim?


Yanıtlar:


1275

Görünüm için arka plan olarak çizilebilir bir şekil (dikdörtgen) ayarlayabilirsiniz.

<TextView android:text="Some text" android:background="@drawable/back"/>

Ve dikdörtgen drawable back.xml (res / drawable klasörüne koy):

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
   <solid android:color="@android:color/white" />
   <stroke android:width="1dip" android:color="#4fa5d5"/>
</shape>

@android:color/transparentDüz rengin saydam bir arka plana sahip olması için kullanabilirsiniz . Metni kenarlıktan ayırmak için dolgu da kullanabilirsiniz. daha fazla bilgi için bkz. http://developer.android.com/guide/topics/resources/drawable-resource.html


83
Sadece üst sınırı istiyorsam ne olur?
happyhardik

19
@whyoz Onun yöntemi hiyerarşiyi görüntülemek için gereksiz karmaşıklık ekler. Yöntemini kullanmak için iki ek görünüme (Bir düzen kabı ve kenarlık görünümü) ihtiyacınız olacak. Böylece, kenarlık eklemeniz gereken birçok görünümünüz varsa, görünüm ağacınız yönetilemez hale gelir.
Konstantin Burov

5
@whyoz yine de bu yöntem stiller ve temalar aracılığıyla uygulanabilirken YongGu'nun yöntemi bu şekilde kullanılamaz.
Konstantin Burov

12
İçin sadece üst sınırında , bkz bu soruyu .
Pang

7
Çekilebilir malzemeler oluşturmak için bu aracı http://shapes.softartstudio.com kullanabilirsiniz.
Arda Basoglu

187

Birkaç farklı (programatik olmayan) yöntemi özetleyeyim.

Çekilebilir bir şekil kullanma

Aşağıdakileri çizilebilir klasörünüze XML dosyası olarak kaydedin (örneğin, my_border.xml):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <!-- View background color -->
    <solid
        android:color="@color/background_color" >
    </solid>

    <!-- View border color and width -->
    <stroke
        android:width="1dp"
        android:color="@color/border_color" >
    </stroke>

    <!-- The radius makes the corners rounded -->
    <corners
        android:radius="2dp"   >
    </corners>

</shape>

Ardından, TextView'inizin arka planı olarak ayarlayın:

<TextView
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/my_border" />

Daha fazla yardım:

9 yama kullanma

9 yama, gerilebilir bir arka plan görüntüsüdür. Kenarlıklı bir görüntü yaparsanız, TextView öğenize bir kenarlık verir. Tek yapmanız gereken görüntüyü oluşturmak ve daha sonra TextView öğenizde arka plana ayarlamaktır.

<TextView
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/my_ninepatch_image" />

9 yamalı bir görüntünün nasıl oluşturulacağını gösteren bazı bağlantılar şunlardır:

Sadece üst sınırı istiyorsam ne olur?

Katman listesi kullanma

İki dikdörtgeni üst üste yığınlamak için katman listesini kullanabilirsiniz. İkinci dikdörtgeni ilk dikdörtgenden biraz daha küçük yaparak kenarlık efekti yapabilirsiniz. İlk (alt) dikdörtgen kenarlık rengidir ve ikinci dikdörtgen arka plan rengidir.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Lower rectangle (border color) -->
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/border_color" />
        </shape>
    </item>

    <!-- Upper rectangle (background color) -->
    <item android:top="2dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/background_color" />
        </shape>
    </item>
</layer-list>

Ayarlama android:top="2dp"üst kısmı 2dp azaltır. Bu, ilk (alt) dikdörtgenin içinden kenar efekti vererek gösterilmesini sağlar. Bunu, TextView arka planına, shapeçekilebilir olanın yukarıda yapıldığı gibi uygulayabilirsiniz .

Katman listeleri hakkında bazı bağlantılar:

9 yama kullanma

Tek bir kenarlıkla 9 yama görüntüsü oluşturabilirsiniz. Diğer her şey yukarıda tartışılanla aynıdır.

Görünüm Kullanma

Bu bir tür hile ama tek bir TextView için iki görünüm veya bir kenar arasında bir ayırıcı eklemek gerekirse iyi çalışır.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textview1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <!-- This adds a border between the TextViews -->
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@android:color/black" />

    <TextView
        android:id="@+id/textview2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

İşte bazı bağlantılar:


24
Adam Tanrım, bir border: 1px solid #999;gerekiyordu değil bu karmaşık.
Achshar

Gölge ve dalgalanma etkisi de olan metin görünümünün kenarlığını istersem ne olur?
Akash Dubey

@AkashDubey, Üzgünüm, daha önce yapmadım. Her birini ayrı ayrı denemenizi ve sonra birleştirmenizi öneririm. Sıkışırsanız Yığın Taşması ile ilgili yeni bir soru sorun.
18'de Suresi

49

Basit yol, TextView için bir görünüm eklemektir. Alt kenar çizgisi örneği:

<LinearLayout android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:text="@string/title"
        android:id="@+id/title_label"
        android:gravity="center_vertical"/>
    <View
        android:layout_width="fill_parent"
        android:layout_height="0.2dp"
        android:id="@+id/separator"
        android:visibility="visible"
        android:background="@android:color/darker_gray"/>

</LinearLayout>

Diğer yön sınırları için, lütfen ayırıcı görünümünün konumunu ayarlayın.


3
Deneyimlerime göre, bu çözüm, eski cihazlarda, uygulama performansı üzerinde sessiz bir görünür etkiye sahiptir.
Roberto Lombardini

43
Bu, enflasyon açısından bakıldığında korkunç bir çözümdür. 3 yeni görünüm öğesi oluşturuyor ve görünüm hiyerarşisi derinliğine bir seviye daha
ekliyorsunuz

En kötü çözüm nedeniyle görüş enflasyon perspektif philipp dedi. TextView'in bunu yapmak için belirli bir xml etiketine sahip olduğunu biliyor musunuz: TextView'unuzda sola / sağa / üste / alta doğru çizilecek bir resim tanımlayın ve bunlar android olarak bilinir: çizilebilir ****
Mathias Seguy Android2ee

32

Metin görünümünü genişleterek ve elle bir kenarlık çizerek bu sorunu çözdüm. Bir kenarlığın noktalı mi yoksa kesikli mi olacağını da seçebilmeniz için ekledim.

public class BorderedTextView extends TextView {
        private Paint paint = new Paint();
        public static final int BORDER_TOP = 0x00000001;
        public static final int BORDER_RIGHT = 0x00000002;
        public static final int BORDER_BOTTOM = 0x00000004;
        public static final int BORDER_LEFT = 0x00000008;

        private Border[] borders;

        public BorderedTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            init();
        }

        public BorderedTextView(Context context, AttributeSet attrs) {
            super(context, attrs);
            init();
        }

        public BorderedTextView(Context context) {
            super(context);
            init();
        }
        private void init(){
            paint.setStyle(Paint.Style.STROKE);
            paint.setColor(Color.BLACK);
            paint.setStrokeWidth(4);        
        }
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            if(borders == null) return;

            for(Border border : borders){
                paint.setColor(border.getColor());
                paint.setStrokeWidth(border.getWidth());

                if(border.getStyle() == BORDER_TOP){
                    canvas.drawLine(0, 0, getWidth(), 0, paint);                
                } else
                if(border.getStyle() == BORDER_RIGHT){
                    canvas.drawLine(getWidth(), 0, getWidth(), getHeight(), paint);
                } else
                if(border.getStyle() == BORDER_BOTTOM){
                    canvas.drawLine(0, getHeight(), getWidth(), getHeight(), paint);
                } else
                if(border.getStyle() == BORDER_LEFT){
                    canvas.drawLine(0, 0, 0, getHeight(), paint);
                }
            }
        }

        public Border[] getBorders() {
            return borders;
        }

        public void setBorders(Border[] borders) {
            this.borders = borders;
        }
}

Ve sınır sınıfı:

public class Border {
    private int orientation;
    private int width;
    private int color = Color.BLACK;
    private int style;
    public int getWidth() {
        return width;
    }
    public void setWidth(int width) {
        this.width = width;
    }
    public int getColor() {
        return color;
    }
    public void setColor(int color) {
        this.color = color;
    }
    public int getStyle() {
        return style;
    }
    public void setStyle(int style) {
        this.style = style;
    }
    public int getOrientation() {
        return orientation;
    }
    public void setOrientation(int orientation) {
        this.orientation = orientation;
    }
    public Border(int Style) {
        this.style = Style;
    }
}

Umarım bu birine yardımcı olur :)


Sınırlar nasıl başlatılır?
zionpi

Kod, tanımlanan değerin yarı boyutunda sınırları çizdiğini gösterdiğinden, düzgün çalışamaz
ucMedia

14

Sadece benzer bir cevaba bakıyordum - bir İnme ve aşağıdaki geçersiz kılma ile yapılabilir:

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {

Paint strokePaint = new Paint();
strokePaint.setARGB(255, 0, 0, 0);
strokePaint.setTextAlign(Paint.Align.CENTER);
strokePaint.setTextSize(16);
strokePaint.setTypeface(Typeface.DEFAULT_BOLD);
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setStrokeWidth(2);

Paint textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTextSize(16);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);

canvas.drawText("Some Text", 100, 100, strokePaint);
canvas.drawText("Some Text", 100, 100, textPaint);

super.draw(canvas, mapView, shadow); 
}

Harika! Benim tek endişem, hem telefonda hem de emülatörde drawRoundRect kullandığımda konturun çirkin olması.
erdomester

1
@erdomester Belki Boya StrokePaint = yeni Boya (Paint.ANTI_ALIAS_FLAG); "köşelerde çirkin" sorunu çözecek
P-RAD

14

Kenarlığı iki yöntemle ayarlayabilirsiniz. Biri çekilebilir ve ikincisi programatik.

Çekilebilir Kullanma

<shape>
    <solid android:color="@color/txt_white"/>
    <stroke android:width="1dip" android:color="@color/border_gray"/>
    <corners android:bottomLeftRadius="10dp"
             android:bottomRightRadius="0dp"
             android:topLeftRadius="10dp"
             android:topRightRadius="0dp"/>
    <padding android:bottom="0dip"
             android:left="0dip"
             android:right="0dip"
             android:top="0dip"/>
</shape>

program niteliğinde


public static GradientDrawable backgroundWithoutBorder(int color) {

    GradientDrawable gdDefault = new GradientDrawable();
    gdDefault.setColor(color);
    gdDefault.setCornerRadii(new float[] { radius, radius, 0, 0, 0, 0,
                                           radius, radius });
    return gdDefault;
}

Bu şekil XML'i textView ile nasıl ilişkilidir?
Neo42

14

Bulduğum en basit çözüm (ve aslında işe yarıyor):

<TextView
    ...
    android:background="@android:drawable/editbox_background" />

Bunu tek bir yerden tüm metin görünümlerine uygulamak mümkün müdür?
Ian Warburton

Şipşak için güzel. Ancak çalışan cihazın sürümüne bağlı olarak, bunun çok olağandışı etkileri olabilir. Bunun nedeni, Google'ın EditTexts'in görünüşünü değiştirmeye devam etmesidir (modaya devam etmelisiniz!)
Scott Biggs

11

Bir TextView çevresine kenarlık koymanın daha iyi bir yolunu buldum.

Arka plan için dokuz yamalı görüntü kullanın. It adlı oldukça basit, SDK 9-yama resim yapması için bir araç ile gelir ve kesinlikle gerektirir hiçbir kodlama.

Bağlantı http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch şeklindedir .


2
Yararlı, evet, ama bu nasıl daha iyi?
aggregate1166877

2
Kabul edilen yanıtın dediği gibi bir şekil kullanmak 9 yamadan daha iyidir, XML dosyası grafik
öğeden

Elbette, programlı olarak istediğiniz grafikleri oluşturmakla sınırlı olmak istiyorsanız, daha esnektir.
Nick

2
Şekil yaklaşımı işe yaramaz.Belki ben deneyimleyen tek kişi benim, "katı" etiketinin saydam olsun ya da olmasın, her zaman işlenir. renkli iç ve başka şekilde renkli kenarlıklara sahip bir dikdörtgen. Ve ASLA şeffaf katı değildir. Her zaman rengi bozar. Ayrıca, bir diğerinden miras alan bir sınıfın da tüm özelliklere sahip olması gerekir, çünkü miras alınır. gerçekten anlayamıyorum, neden temel OO-tasarım-yönergeleri android tarafından kırık. Örneğin, düğmeden miras aldım. Tüm özellikler gitti. Neden ?
Ocak'ta icbytes

2
@Jeremie Oldukça yavaş mı? Nasıl gözlemliyorsunuz?
IgorGanapolsky

11

Kodunuza böyle bir şey ekleyebilirsiniz:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >
    <solid android:color="#ffffff" />
    <stroke android:width="1dip" android:color="#4fa5d5"/>
</shape>

İnme neden gereklidir?
IgorGanapolsky

@IgorGanapolsky, kontur gerçek sınır oluşturmak?
Tash Pemhiwa

10

Yuvarlatılmış köşeler yapmak için aşağıdaki bağlantıyı kontrol edin http://androidcookbook.com/Recipe.seam?recipeId=2318

Bir Android projesinde res altında çizilebilir klasör, bitmap'lerle (PNG veya JPG dosyaları) sınırlı değildir, ancak XML dosyalarında tanımlanan şekilleri de tutabilir.

Bu şekiller daha sonra projede tekrar kullanılabilir. Bir mizanpajın etrafına kenarlık koymak için şekil kullanılabilir. Bu örnek kavisli köşeleri olan dikdörtgen bir kenarlığı göstermektedir. Çizilebilir klasörde customborder.xml adlı yeni bir dosya oluşturulur (Eclipse'de Dosya menüsünü kullanın ve Dosya adında çizilebilir klasör seçiliyken Yeni'yi ve ardından Dosya'yı seçin ve Son'u tıklatın).

Kenarlık şeklini tanımlayan XML girilir:

<?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="20dp"/>
    <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
    <solid android:color="#CCCCCC"/>
</shape>

Özellik android:shapedikdörtgene ayarlanmıştır (şekil dosyaları oval, çizgi ve halkayı da destekler). Dikdörtgen varsayılan değerdir, bu nedenle tanımlanmış bir dikdörtgense bu özellik dışarıda bırakılabilir. Şekil dosyası hakkında ayrıntılı bilgi için http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape adresindeki şekiller hakkındaki Android belgelerine bakın .

Öğe köşeleri, dikdörtgen köşeleri yuvarlanacak şekilde ayarlar. Her köşeye farklı bir yarıçap ayarlamak mümkündür (Android referansına bakın).

Doldurma nitelikleri, içeriğin kenarlıkla çakışmasını önlemek için, şeklin uygulandığı Görünümün içeriğini taşımak için kullanılır.

Buradaki kenarlık rengi açık gri olarak ayarlanmıştır (CCCCCC onaltılık RGB değeri).

Şekiller degradeleri de destekler, ancak bu burada kullanılmamaktadır. Yine, bir degradenin nasıl tanımlandığını görmek için Android kaynaklarına bakın. Şekil, mizanpaja kullanılarak uygulanır android:background="@drawable/customborder".

Düzen içinde diğer görünümler normal olarak eklenebilir. Bu örnekte, tek bir TextView eklenmiştir ve metin beyazdır (FFFFFF onaltılık RGB). Arka plan mavi, artı parlaklığı azaltmak için bir miktar saydamlığa ayarlandı (A00000FF onaltılık alfa RGB değeri). Son olarak, düzen, az miktarda dolgu ile başka bir düzene yerleştirilerek ekranın kenarından kaydırılır. Tam düzen dosyası şu şekildedir:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="5dp">
    <LinearLayout android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:background="@drawable/customborder">
        <TextView android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="Text View"
                android:textSize="20dp"
                android:textColor="#FFFFFF"
                android:gravity="center_horizontal"
                android:background="#A00000FF" />
    </LinearLayout>
</LinearLayout>

Bağlantılar gelecekte bir noktada kopma eğilimi gösterdiğinden, yalnızca bağlantı cevapları son derece cesaret kırıcıdır. Bağlantının ilgili kısımlarını, bağlantı olmasa bile bilgilerin kullanılabilir kalması için bu cevaba çekin.
Andy

8

Çok basit bir şekilde yapmanın bir yolu var ve paylaşmak istiyorum.

Ben mi TextViews kare istiyorum, ben sadece onları bir LinearLayout koyun. LinearLayout'umun arka plan rengini ayarladım ve TextView'ime bir kenar boşluğu ekliyorum. Sonuç, tıpkı TextView öğesinin karesini aldığınız gibidir.


2

Konstantin Burov cevabını değiştirmek benim durumumda çalışmıyor çünkü:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
            <stroke android:width="2dip" android:color="#4fa5d5"/>
            <corners android:radius="7dp"/>
        </shape>
    </item>
</selector>

compileSdkVersion 26 (Android 8.0), minSdkVersion 21 (Android 5.0), targetSdkVersion 26, 'com.android.support:appcompat-v7:26.1.0' uygulaması, not: 4.1


2

Metin görünümünüz için özel arka plan oluşturabilirsiniz. Adımlar 1. Projenize gidin. 2. Kaynaklara gidin ve çekilebilir için sağ tıklayın. 3. Yeni -> Çekilebilir Kaynak Dosyası'na tıklayın 4. Dosyanıza ad verin 5. Aşağıdaki kodu dosyaya yapıştırın

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp" android:color="@color/colorBlack" />
<padding android:left="1dp"
    android:top="1dp"
    android:right="1dp"
    android:bottom="1dp" />
<corners android:radius="6dp" />
<solid android:color="#ffffffff" />

  1. Kağıt olarak kullanmak istediğiniz metin görünümünüz için,

    robot: arka plan = "@ çekilebilir / dosya_adiniz"


1

İşte benim kenarlığı olan bir ImageView döndüren 'basit' yardımcı sınıfım. Bunu utils klasörünüze bırakın ve şöyle adlandırın:

ImageView selectionBorder = BorderDrawer.generateBorderImageView(context, borderWidth, borderHeight, thickness, Color.Blue);

İşte kod.

/**
 * Because creating a border is Rocket Science in Android.
 */
public class BorderDrawer
{
    public static ImageView generateBorderImageView(Context context, int borderWidth, int borderHeight, int borderThickness, int color)
    {
        ImageView mask = new ImageView(context);

        // Create the square to serve as the mask
        Bitmap squareMask = Bitmap.createBitmap(borderWidth - (borderThickness*2), borderHeight - (borderThickness*2), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(squareMask);

        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(color);
        canvas.drawRect(0.0f, 0.0f, (float)borderWidth, (float)borderHeight, paint);

        // Create the darkness bitmap
        Bitmap solidColor = Bitmap.createBitmap(borderWidth, borderHeight, Bitmap.Config.ARGB_8888);
        canvas = new Canvas(solidColor);

        paint.setStyle(Paint.Style.FILL);
        paint.setColor(color);
        canvas.drawRect(0.0f, 0.0f, borderWidth, borderHeight, paint);

        // Create the masked version of the darknessView
        Bitmap borderBitmap = Bitmap.createBitmap(borderWidth, borderHeight, Bitmap.Config.ARGB_8888);
        canvas = new Canvas(borderBitmap);

        Paint clearPaint = new Paint();
        clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

        canvas.drawBitmap(solidColor, 0, 0, null);
        canvas.drawBitmap(squareMask, borderThickness, borderThickness, clearPaint);

        clearPaint.setXfermode(null);

        ImageView borderView = new ImageView(context);
        borderView.setImageBitmap(borderBitmap);

        return borderView;
    }
}

Nasıl Kullanırım selectionBorder?
Tash Pemhiwa

@TashPemhiwa Button.setBackgroundDrawable ();
NinjaOnSafari

0

Bu size yardımcı olabilir.

<RelativeLayout
    android:id="@+id/textbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@android:color/darker_gray" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_margin="3dp"
        android:background="@android:color/white"
        android:gravity="center"
        android:text="@string/app_name"
        android:textSize="20dp" />

</RelativeLayout

0

Metin görünümünüzün kenarlığının rengi ve boyutu olarak arka plan rengiyle bir kenarlık görünümü oluşturun. kenarlık görünümü dolgusunu kenarlığın genişliği olarak ayarla. Metin görünümü arka plan rengini metin görünümü için istediğiniz renk olarak ayarlayın. Şimdi metin görünümünüzü kenarlık görünümünün içine ekleyin.


0

Bunu dene:

<shape>
    <solid android:color="@color/txt_white"/>
    <stroke android:width="1dip" android:color="@color/border_black"/>
</shape>

0

Bir textView'e kenarlık eklemenin birçok yolu vardır. En basit olanı, özel bir çizilebilir oluşturma ve bunu android:background="@drawable/textview_bg"textView için olduğu gibi ayarlamanızdır .

Textview_bg.xml Çizilebilirlerin altına girer ve böyle bir şey olabilir. Köşe yarıçapı eklemek ve kenarlık eklemek için bir solidveya gradientarka plana (veya gerekli değilse hiçbir şeye) sahip olabilirsiniz .cornersstroke

textview_bg.xml

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">

        <corners
            android:radius="@dimen/dp_10"/>

        <gradient
            android:angle="225"
            android:endColor="#FFFFFF"
            android:startColor="#E0E0E0" />

        <stroke
            android:width="2dp"
            android:color="#000000"/>

    </shape>

0
  <View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="@android:color/black" />

bu kodu istediğiniz yere yerleştirebilirsiniz


0

xml metin görünümünüzde setBackground,

rounded_textview.xml dosyasını çekilebilir dizininize ekleyin.

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
   <solid android:color="@android:color/white" />
   <stroke android:width="2dip" android:color="#4f5g52"/>
</shape>

çekilebilir dosyayı textView arka planda ayarla.


-1

Aslında, çok basit. Metin görünümünün arkasında basit bir siyah dikdörtgen istiyorsanız, yalnızca android:background="@android:color/black"TextView etiketlerinin içine ekleyin . Bunun gibi:

<TextView
    android:textSize="15pt" android:textColor="#ffa7ff04"
    android:layout_alignBottom="@+id/webView1"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:background="@android:color/black"/>

tam arka plan değil sınır istiyor.
Guy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.