Ich wollte eine Methode hinzufügen, um eine Animation in "ImageView" zu blinken. Ich möchte es blinken lassen, indem ich einfach ".blink ()" aufrufe, ohne dem Benutzer die Implementierung zum Blinken zu geben.
Implementieren Sie daher eine neue Klasse, die "ImageView" erbt, und fügen Sie eine neue Methode hinzu.
BlinkableImageView.java
package com.hoge_company.fooapp.widget;
import android.content.Context;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
class BlinkableImageView extends AppCompatImageView {
public BlinkableImageView(Context context) {
super(context);
initialize();
}
public BlinkableImageView(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}
public BlinkableImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}
protected void initialize() {
//Wenn Sie hier irgendwelche Vorbereitungen haben
}
public void blink(int durationMillis) {
//Implementierung zum Blinken
// getContext()Kann Kontext mit bekommen
}
}
Überschreiben Sie drei Konstruktoren mit "public". Ich habe "public" vergessen und viel Zeit verbracht.
Die Implementierung zum Blinken ist nicht das Hauptthema, daher werde ich sie hier nicht schreiben.
Sie können so in XML schreiben. Die Attribute sind angemessen.
activity_main.xml
<com.hoge_company.fooapp.widget.BlinkableImageView
android:id="@+id/foo_image"
android:visibility="invisible"
android:scaleType="fitCenter"
android:adjustViewBounds="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
In einigen Fällen werden nicht alle Konstruktoren überschrieben. Ich mache mir Sorgen, ob es in Zukunft in Ordnung ist, also habe ich beschlossen, alles außer Kraft zu setzen.
Recommended Posts