How to blink an image in ImageView (Android)

I am working on a wallpaper application in which I display an image with ImageView as a splash screen.

Now I want to mark the ImageView image as a splash screen.

This is my screensaver code:

 import java.util.ArrayList; import java.util.List; import java.util.Random; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Window; import android.widget.ImageView; import android.widget.Toast; import com.android.volley.Request.Method; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.usd.amazingwallpapershd.app.AppConst; import com.usd.amazingwallpapershd.app.AppController; import com.usd.amazingwallpapershd.picasa.model.Category; @SuppressLint("NewApi") public class SplashActivity extends Activity { private static final String TAG = SplashActivity.class.getSimpleName(); private static final String TAG_FEED = "feed", TAG_ENTRY = "entry", TAG_GPHOTO_ID = "gphoto$id", TAG_T = "$t", TAG_ALBUM_TITLE = "title"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_ACTION_BAR); getActionBar().hide(); setContentView(R.layout.activity_splash); // //splash images array // Randomise a background // int[] yourListOfImages = { R.drawable.splash_8, R.drawable.splash_8 // }; int[] yourListOfImages = { R.drawable.splash_1, R.drawable.splash_2, R.drawable.splash_3, R.drawable.splash_4 }; Random random = new Random(System.currentTimeMillis()); int posOfImage = random.nextInt(yourListOfImages.length - 1); ImageView imageView = (ImageView) findViewById(R.id.splash_imageview); imageView.setBackgroundResource(yourListOfImages[posOfImage]); // // // // // Picasa request to get list of albums String url = AppConst.URL_PICASA_ALBUMS .replace("_PICASA_USER_", AppController.getInstance() .getPrefManger().getGoogleUserName()); Log.d(TAG, "Albums request url: " + url); // Preparing volley json object request JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d(TAG, "Albums Response: " + response.toString()); List<Category> albums = new ArrayList<Category>(); try { // Parsing the json response JSONArray entry = response.getJSONObject(TAG_FEED) .getJSONArray(TAG_ENTRY); // loop through albums nodes and add them to album // list for (int i = 0; i < entry.length(); i++) { JSONObject albumObj = (JSONObject) entry.get(i); // album id String albumId = albumObj.getJSONObject( TAG_GPHOTO_ID).getString(TAG_T); // album title String albumTitle = albumObj.getJSONObject( TAG_ALBUM_TITLE).getString(TAG_T); Category album = new Category(); album.setId(albumId); album.setTitle(albumTitle); // add album to list albums.add(album); Log.d(TAG, "Album Id: " + albumId + ", Album Title: " + albumTitle); } // Store albums in shared pref AppController.getInstance().getPrefManger() .storeCategories(albums); // String the main activity Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); // closing spalsh activity finish(); } catch (JSONException e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), getString(R.string.msg_unknown_error), Toast.LENGTH_LONG).show(); } } }, new Response.ErrorListener() { @SuppressWarnings("deprecation") @Override public void onErrorResponse(VolleyError error) { Log.e(TAG, "Volley Error: " + error.getMessage()); // show error toast Toast.makeText(getApplicationContext(), getString(R.string.splash_error), Toast.LENGTH_LONG).show(); // Unable to fetch albums // check for existing Albums data in Shared Preferences if (AppController.getInstance().getPrefManger() .getCategories() != null && AppController.getInstance().getPrefManger() .getCategories().size() > 0) { // String the main activity Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); // closing spalsh activity finish(); } else { // Albums data not present in the shared preferences // Launch settings activity, so that user can modify // the settings // Intent i = new Intent(SplashActivity.this, // SettingsActivity.class); // // clear all the activities // i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK // | Intent.FLAG_ACTIVITY_CLEAR_TASK); // startActivity(i); AlertDialog alertDialog = new AlertDialog.Builder( SplashActivity.this).create(); alertDialog .setMessage("Please connect to the internet and try again"); alertDialog.setButton("OK", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int which) { finish(); } }); alertDialog.show(); } } }); // disable the cache for this request, so that it always fetches updated // json jsonObjReq.setShouldCache(false); // Making the request AppController.getInstance().addToRequestQueue(jsonObjReq); } } 

, and this is the BlinkActivity code:

 import android.app.Activity; import android.os.Bundle; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; import android.widget.ImageView; public class BlinkActivity extends Activity implements AnimationListener { ImageView img; // Animation Animation animBlink; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); img = (ImageView) findViewById(R.id.splash_imageview); // load the animation animBlink = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink); // set animation listener animBlink.setAnimationListener(this); // start the animation img.startAnimation(animBlink); } @Override public void onAnimationEnd(Animation animation) { // Take any action after completing the animation // check for blink animation if (animation == animBlink) { } } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationStart(Animation animation) { } } 

But I don’t understand how can I implement both together to make it work?

+10
android android-imageview android-animation
source share
4 answers

The next code snippet will flash ImageView. Set the ImageView background as transparent.

  Animation animation = new AlphaAnimation(1, 0); //to change visibility from visible to invisible animation.setDuration(1000); //1 second duration for each animation cycle animation.setInterpolator(new LinearInterpolator()); animation.setRepeatCount(Animation.INFINITE); //repeating indefinitely animation.setRepeatMode(Animation.REVERSE); //animation will start from end point once ended. imageButton.startAnimation(animation); //to start animation 
+34
source share

** Try this code **

 image = (ImageView) findViewById(R.id.image); Animation animation = new AlphaAnimation((float) 0.5, 0); // Change alpha from fully visible to invisible animation.setDuration(500); // duration - half a second animation.setInterpolator(new LinearInterpolator()); // do not alter // animation // rate animation.setRepeatCount(Animation.INFINITE); // Repeat animation // infinitely animation.setRepeatMode(Animation.REVERSE); // Reverse animation at the // end so the button will // fade back in image.startAnimation(animation); 
+11
source share

If you do not want to blink the ImageView background (only the original image blinks) or you just do not want to write any of this code yourself - this is what I tried to avoid - then you will have to create a custom view and use it internally.
Of course, there is a workaround with the parent FrameLayout, but don't create more hierarchies when there is no real need. :)

In any case, I wrote Blinker View because I needed this behavior, and you can use it here: https://github.com/milosmns/blinking-image-view

Happy coding!

0
source share
 ImageView image_star_animation; image_star_animation = (ImageView) mView.findViewById(R.id.image_star_animation); private void blinkAnimation(){ Animation animation = new AlphaAnimation(1, 0); //to change visibility from visible to invisible animation.setDuration(2000); //2 second duration for each animation cycle animation.setInterpolator(new LinearInterpolator()); animation.setRepeatCount(Animation.INFINITE); //repeating indefinitely animation.setRepeatMode(Animation.REVERSE); //animation will start from end point once ended. image_star_animation.startAnimation(animation); // imageview.startAnimation() } private void gifAnimation() { AnimationDrawable animation = new AnimationDrawable(); animation.addFrame(getResources().getDrawable(R.drawable.star_icon), 700); animation.addFrame(getResources().getDrawable(R.drawable.app_icon), 1500); animation.addFrame(getResources().getDrawable(R.drawable.win_icon), 3000); animation.setOneShot(false); image_star_animation.setImageDrawable(animation); animation.start(); } 
0
source share

All Articles