web-dev-qa-db-fra.com

Android ajoute une bordure pour éditer du texte par programmation

J'ai utilisé this example et essayé de l'ajouter par programme à mon texte de montage comme editText.setBackgroundResource(R.drawable.edit_text_back);, mais cela ne fonctionne pas. Comment puis-je accomplir cela? Des suggestions ou des idées?

EDIT Le editText est également défini par programme. 

EditText editText = new EditText(this.getApplicationContext());

J'ai ajouté ceci à une ligne de la table

A TENTÉ

editText.setBackground(getResources().getDrawable(R.drawable.edit_text_back));
editText.setBackgroundDrawable(getResources().getDrawable(R.drawable.edit_text_back));

EDITER LA CRÉATION DE TEXTE

TableRow row = (TableRow) findViewById(R.id.table_row_kind);
TableRow.LayoutParams rowP = new TableRow.LayoutParams();
        rowP.setMargins(10, 0, 0, 0);
editText = new EditText(this.getApplicationContext());
editText .setGravity(Gravity.FILL_HORIZONTAL);
editText .setLayoutParams(rowP);
editText .setFilters(new InputFilter[]{txtFilter});
editText.setBackground(getResources().getDrawable(R.drawable.edit_text_back));

row.xml

<TableRow
    Android:id="@+id/table_row_kind"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:padding="5dip" >

    <TextView
       Android:layout_width="250sp"
       Android:text="Kind"
       Android:textAppearance="?android:attr/textAppearanceLarge" />
</TableRow>
12
Lunchbox

Eh bien, j'ai aussi le même problème que je résous de la manière suivante. C'est un fichier xml le mettre sur votre dossier pouvant être dessiné et mettre ce xml à l'arrière-plan de cet EditText 

code d'activité:

EditText foo = (EditText)findViewById(R.id.editText);
foo.setBackgroundResource(R.drawable.backtext);

backtext.xml

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="rectangle" >
       <solid Android:color="#ffffff" />
       <stroke Android:width="1dip" Android:color="#000000"/>
    </shape>
16
mayuri

créer un fichier edittext.xml dans un dossier pouvant être dessiné

<?xml version="1.0" encoding="utf-8"?>
<!--  res/drawable/rounded_edittext.xml -->
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" Android:padding="10dp">
<solid Android:color="#FFFFFF"/>
<stroke
    Android:width="1dp"
    Android:color="@Android:color/black" />
<corners
 Android:bottomRightRadius="15dp"
 Android:bottomLeftRadius="15dp"
 Android:topLeftRadius="15dp"
Android:topRightRadius="15dp"/>
</shape>


in your main.xml
<EditText
background="drawable/edittext.xml"
/>
9
Pankaj Arora

Ce code fonctionne pour dessiner la bordure de n'importe quelle vue par programme

package com.example.border;

import Android.graphics.Canvas;
import Android.graphics.Color;
import Android.graphics.Paint;
import Android.graphics.drawable.ShapeDrawable;

public class ShapeDrawableWithoutBottom extends ShapeDrawable {
    private float mLineWidth = 1f;
    private final Paint mLinePaint;
    private int color;

    public ShapeDrawableWithoutBottom() {

        // No color specified, so call constructor with default color White
        this(Color.WHITE);
    }

    public ShapeDrawableWithoutBottom(int layoutColor) {

        // use the setter defined below, to set the main color for this drawable
        // setColor(color);
        setColor(layoutColor);
        // setup the Paint for drawing the lines
        mLinePaint = new Paint();
        mLinePaint.setStyle(Paint.Style.STROKE);
        mLinePaint.setStrokeWidth(mLineWidth);
    }

    public void setColor(int color) {
        Paint paint = getPaint();
        Paint.setColor(color);

    }

    public void setLineColor(int color) {
        this.color = color;
    }

    public void setLineWidth(float lineWidth) {
        mLineWidth = lineWidth;
        mLinePaint.setStrokeWidth(mLineWidth);
    }

    @Override
    public void draw(Canvas canvas) {
        super.draw(canvas);

        // bottom black line
        // //////////////////

        mLinePaint.setColor(Color.parseColor("#00000000"));
        mLinePaint.setAlpha((int) (255 * 0.0)); // Opacity 90%
        canvas.drawLine(getBounds().left, getBounds().bottom - mLineWidth
                * 0.5f, getBounds().right, getBounds().bottom - mLineWidth
                * 0.5f, mLinePaint);

        // translucent grey rim
        // /////////////////////

        mLinePaint.setColor(color);
        mLinePaint.setAlpha((int) (255 * 0.7)); // Opacity 70%

        // top
        canvas.drawLine(getBounds().left, getBounds().top + mLineWidth * 0.5f,
                getBounds().right, getBounds().top + mLineWidth * 0.5f,
                mLinePaint);

        // left
        canvas.drawLine(getBounds().left + mLineWidth * 0.5f,
                getBounds().bottom , getBounds().left + mLineWidth
                        * 0.5f, getBounds().top + mLineWidth, mLinePaint);

        // right
        canvas.drawLine(getBounds().right - mLineWidth * 0.5f,
                getBounds().bottom , getBounds().right - mLineWidth
                        * 0.5f, getBounds().top + mLineWidth, mLinePaint);

        // top white line
        // ///////////////

        mLinePaint.setColor(Color.WHITE);
        mLinePaint.setAlpha((int) (255 * 0.5)); // Opacity 50%
        canvas.drawLine(getBounds().left + mLineWidth, getBounds().top
                + mLineWidth * 1.5f, getBounds().right - mLineWidth,
                getBounds().top + mLineWidth * 1.5f, mLinePaint);
    }
}
3
Jitesh Dalsaniya

Essayez ceci en cela, j’ai ajouté dynamiquement edittext puis définissez son arrière-plan et cela fonctionne. 

 LinearLayout layout=(LinearLayout)findViewById(R.id.layout);
                    EditText edit=new EditText(MainActivity.this);
                    edit.setBackgroundResource(R.drawable.abc);
                    edit.setMaxWidth(100);
                    edit.setMinHeight(100);
                    edit.setText("hello");
                    layout.addView(edit);
1
mayuri

C'est vous pouvez faire la bordure pour le texte édité. Enregistrer ceci dans res/drawable 

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
        <item>
         <shape Android:shape="rectangle">
         <gradient Android:startColor="#f9f9f9"
                Android:centerColor="#ffffff"
                Android:endColor="#ffffff"
                Android:angle="90"/>
         <stroke  Android:width="1dp" Android:color="#2B547E"/>
        </shape>
         </item>
    </layer-list>
0
Akarsh M

Utilisation

 editText.setBackground(getResources().getDrawable(R.drawable.edit_text_back));

Institué de 

editText.setBackgroundResource(R.drawable.edit_text_back);
0
dharam