Kann mir jemand in diesem Beispiel erklären, welches XML-Tag deklarierbar ist und welche Theorie dahinter steckt?

Ich lese Beginning Android 4 Development und in Kapitel 5 geht es darumGalerie undImageVievs und stellt das vordeklarierbar XML-Tag, ohne seinen Zweck zu erklären. Ich habe versucht, einige Informationen auch über die Referenz zu finden.

res / values ​​/ attrs.xml

<?xml version=”1.0” encoding=”utf-8”?> 
<resources>
    <declare-styleable name=”Gallery1”>
        <attr name=”android:galleryItemBackground” />
    </declare-styleable>
</resources>

example.java

public class GalleryActivity extends Activity {
[...]
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.main);
        Gallery gallery = (Gallery) findViewById(R.id.gallery1);
        gallery.setAdapter(new ImageAdapter(this)); 
        [...]
    }

    [...]

    public class ImageAdapter extends BaseAdapter {
        [...]
        int itemBackground;

        public ImageAdapter(Context c) {
            context = c;
            //---setting the style---
            TypedArray a = obtainStyledAttributes(
            R.styleable.Gallery1); 
            itemBackground = a.getResourceId(
                        R.styleable.Gallery1_android_galleryItemBackground, 0);
            a.recycle();
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            [...]
            imageView.setBackgroundResource(itemBackground);
            return imageView; 
        }
    }
}

Ich habe den Code ein paar Mal gelesen und verstehe nicht wirklich den Zweck, diesen Stil zu definierenGalerie1 mit einer einzigenattr Kind nur mit einemName Attribut .. kannst du mir helfen? Ist dasgalleryItemBackground etwas, das vom System bereitgestellt wird, oder ist es etwas, das von uns definiert wurde? Was machen wir in diesem Code?

Vielen Dank im Voraus für jede Hilfe!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage