2014-12-15 12 views
7

Questo è circle.xmlCome modificare la larghezza del tratto di una forma in modo programmatico su Android?

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="oval"> 
    <solid android:color="#00000000"/> 
    <padding android:left="30dp" android:top="30dp" 
      android:right="30dp" android:bottom="30dp" /> 
    <stroke android:color="#439CC8" android:width="7dp" /> 
</shape> 

Questo è il mio codice:

textview.setBackgroundResource(R.drawable.circle); 

voglio cambiare lo spessore del tratto nel mio codice Java. Come posso cambiarlo a livello di programmazione?

risposta

7

Potrebbe essere necessario creare a livello di codice

ShapeDrawable circle = new ShapeDrawable(new OvalShape()); 

è necessario impostare le proprietà dopo questo, (imbottitura, il colore, ecc) quindi modificare la sua corsa

circle.getPaint().setStrokeWidth(12); 

quindi impostarlo come il sfondo per la vista

textview.setBackgroundDrawable(circle); 
+0

myView --- qual è questa variabile? –

+1

in qualunque vista si stia tentando di impostare lo sfondo. textview nel tuo caso. aggiornare la mia risposta – browep

+0

La mia app ha fermato questa riga: ShapeDrawable myCircle = (ShapeDrawable) getResources(). getDrawable (R.drawable.circle); –

8

fare in questo modo:

1) Prendi il TextView usando il solito findViewById():

TextView textView = (TextView) rootView.findViewById(R.id.resourceName); 

2) Ottenere il Drawable da TextView utilizzando getBackground() per gettarlo ai GradientDrawable:

GradientDrawable backgroundGradient = (GradientDrawable) textView.getBackground(); 

3) Applicare un ictus usando setStroke() metodo (passare la larghezza in pixel e il colore):

backgroundGradient.setStroke(5, Color.BLACK); 

Codice completo:

TextView textView = (TextView) rootView.findViewById(R.id.resourceName); 
GradientDrawable backgroundGradient = (GradientDrawable) textView.getBackground(); 
backgroundGradient.setStroke(5, Color.BLACK); 
Problemi correlati