Ich suche schon seit ca. 2 Wochen nach einer Lösung oder Teillösungen und habe auch schon 2 Methoden gefunden,
die das so dar zu stellen, aber diese bringen nur mein Handy zum schwitzen aber keine schöne Animation.
Methode 1:
XML
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/bild_0_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_18_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_36_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_54_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_72_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_90_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_108_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_126_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_144_grad" android:duration="100"/>
<item android:drawable="@drawable/bild_162_grad" android:duration="100"/>
</animation-list>
Alles anzeigen
Methode 2:
Java
Runnable rot = new Runnable() {
int grad = 0;
@Override
public void run() {
Bitmap colormap = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.colorMap);
Bitmap mask = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.mask);
if(grad >= 360)
grad = 0;
Matrix matrix = new Matrix();
matrix.postRotate(grad);
colormap = Bitmap.createBitmap(colormap, 0, 0, colormap.getWidth(), colormap.getHeight(), matrix, true);
Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Bitmap.Config.ARGB_8888);
Canvas tmpCanvas = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
tmpCanvas.drawBitmap(colormap, 0, 0, null);
tmpCanvas.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);
tmpCanvas.drawBitmap(result, 0, 0, new Paint());
IMV.setImageBitmap(result);
grad += 8;
if(weiter)
mHandler.postDelayed(this, 20);
}
};
Alles anzeigen
IMV ist das Imageview in dem die Animation angezeigt werden soll.
Die zweite Methode ist denke ich besser, da die Bild auf 1/3 des Bildschirmes angezeigt wird und daher eine minmale Auflösung 150x150 Pixel haben muss.
Befor die Frage der Sinnhaftigkeit auf kommt will ich dazu sagen dass das Desing nicht mein Teil des Projektes ist .