Je voulais ajouter une méthode pour faire clignoter une animation dans ʻImageView. Je veux le faire clignoter en appelant simplement
.blink ()` sans donner à l'utilisateur l'implémentation pour clignoter.
Par conséquent, implémentez une nouvelle classe qui hérite de ʻImageView` et ajoutez une nouvelle méthode.
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() {
//Si vous avez des préparatifs ici
}
public void blink(int durationMillis) {
//Mise en œuvre pour clignoter
// getContext()Peut obtenir du contexte avec
}
}
Remplacez trois constructeurs par public
.
J'ai oublié «public» et j'ai passé beaucoup de temps.
L'implémentation du clignotement est hors du sujet principal, je ne l'écrirai donc pas ici.
Vous pouvez écrire en XML comme ceci. Les attributs sont appropriés.
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" />
Dans certains cas, tous les constructeurs ne sont pas surchargés, Je m'inquiète si ça va à l'avenir, alors j'ai décidé de tout ignorer.
Recommended Posts