I am trying to perform an animation on a button click.. the steps are as follows on button click..
But am getting an out of memory exception..
When the animation file was not added to the project there was no error. But since the addition of the anime there is the problem.
I am using 3 class files here(home_screen, button_anime and home)
home_screen.java receives the button click information, changes the button image and transfers to button_anime class the animation file is initiated in the button_anime.java and after anime plays next layout is displayed from home.java
The log cat is as follows..
E/AndroidRuntime(1255): java.lang.OutOfMemoryError
E/AndroidRuntime(1255): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
E/AndroidRuntime(1255): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587)
E/AndroidRuntime(1255): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:422)
E/AndroidRuntime(1255): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840)
E/AndroidRuntime(1255): at android.content.res.Resources.loadDrawable(Resources.java:2110)
E/AndroidRuntime(1255): at android.content.res.Resources.getDrawable(Resources.java:700)
E/AndroidRuntime(1255): at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:282)
E/AndroidRuntime(1255): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
E/AndroidRuntime(1255): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
E/AndroidRuntime(1255): at android.content.res.Resources.loadDrawable(Resources.java:2092)
E/AndroidRuntime(1255): at android.content.res.Resources.getDrawable(Resources.java:700)
E/AndroidRuntime(1255): at android.view.View.setBackgroundResource(View.java:15303)
E/AndroidRuntime(1255): at com.quinoid.thomasinternational.Button_Anime.onCreate(Button_Anime.java:19)
E/AndroidRuntime(1255): at android.app.Activity.performCreate(Activity.java:5231)
E/AndroidRuntime(1255): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
E/AndroidRuntime(1255): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
E/AndroidRuntime(1255): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
E/AndroidRuntime(1255): at android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime(1255): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime(1255): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(1255): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(1255): at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime(1255): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1255): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(1255): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime(1255): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime(1255): at dalvik.system.NativeStart.main(Native Method)
My home_screen.java
home.setOnClickListener(new OnClickListener() { <-- error happens somewhere here
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Bitmap b = BitmapFactory.decodeResource(getResources(),R.drawable.home1);
Drawable d = new BitmapDrawable(getResources(),b);
home.setBackgroundDrawable(d); <-- this dose not work..
Intent myIntent = new Intent(Home_Screen.this, Button_Anime.class);
startActivity(myIntent);
}
});
_img is your imageview. you have to decode your image and set its size like below i am doing.
File imgFile = new File(_path); // path of your file
if (imgFile.exists()) {
FileInputStream fis = new FileInputStream(imgFile);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
options.inPurgeable = true;
options.inScaled = true;
Bitmap bm = BitmapFactory.decodeStream(fis, null,options);
_img.setImageBitmap(bm);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With