Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Android: wie lädt man zur Laufzeit einen drawable Style auf eine Tabelle

19.09.2018 (👁4319)

Wie findet man den drawable zur Laufzeit und übernimmt den Style

Aufgabe:

Unter einer Android App soll ein ausgelagerter Style auf neu erstellte Darstellungs-Elemente zur Laufzeit übertragen werden.

Der Darstellungsstyle ist in einer Datei unter res/drawable/xml ausgelagert.

Lösung:

Man kann mit getDrawable(..) den Darstellungsstyle ermitteln und übernehmen

         

In Android Java zur Laufzeit:

Drawable background_XML= getDrawable(R.drawable.table_layout);
lbl1.setBackground(background_XML);

 

 

Dadurch wird der Style, welcher in in einer xml Datei gespeichert ist, ermittelt und auf ein Anzeigeelement wie einer Tabelle, TableRow oder Zelle TextView angewandt

Hier ist der Anzeigestil gespeichert in der Datei table_layout.xml unter

/res/drawable

/table_layout.xml.

Der Anzeigestyle wird gefunden mit getDrawable

Drawable background_XML= getDrawable(R.drawable.table_layout);

 

 

Xml Code der table_layout Datei

Table_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
   
xmlns:android="http://schemas.android.com/apk/res/android"
   
android:shape= "rectangle"    >
    <
stroke android:width="1px"  android:color="#555555"/>
</
shape>

 

 

Beispiel wie die TAbelle dynamisch zur Laufzeit mit weiteren Tabellenreihen und Zellen gefüllt wird und in die Zellen die Darstellung übernommen wird.

public void create_Table(){
   
//-------< create_Table() >--------
   
TableLayout tbl=findViewById(R.id.table_main);

   
//--< Row >--
   
TableRow row=new TableRow(this);
    row.setPadding(
2,2,2,2);
   
//< cell1 >
   
TextView lbl1=new TextView(this);
    lbl1.setText(
"Cell1");
   
//lbl1.setTextColor(Color.RED);
    //lbl1.setBackgroundColor(Color.YELLOW);
   
Drawable background_XML= getDrawable(R.drawable.table_layout);
    lbl1.setBackground(background_XML);

    row.addView(lbl1);
   
//</ cell1 >

    //< cell2 >
   
TextView lbl2=new TextView(this);
    lbl2.setText(
"Cell2");

    row.addView(lbl2);
   
//</ cell1 >
    //--</ Row >--

    //< add to table >
   
tbl.addView(row);
   
//</ add to table >
    //-------</ create_Table() >--------
}

 

 

 

Nach dem Start warden die zwei unteren Zellen eingefügt und die Darstellung übernommen

 

Betrifft:

Android Drawable Style

Android Studio, Android Java zur Laufzeit