2014-12-12 16 views
7

Sto lavorando a un'applicazione per lo sfondo in cui visualizzo l'immagine con ImageView come schermata iniziale.Come lampeggiare l'immagine in ImageView (Android)

Ora voglio lampeggiare l'immagine ImageView come schermata iniziale.

Questo è il mio codice spruzzata schermo:

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's 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); 

    } 

} 

e questo è il codice BlinkActivity:

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) { 

    } 

} 

Ma io non sto capendo come faccio a implementare sia insieme per fare funziona?

risposta

19

Il seguente frammento di codice lampeggerà ImageView. Imposta lo sfondo di ImageView come trasparente.

Animation animation = new AlphaAnimation(1, 0); 
    animation.setDuration(1000); 
    animation.setInterpolator(new LinearInterpolator()); 
    animation.setRepeatCount(Animation.INFINITE); 
    animation.setRepeatMode(Animation.REVERSE); 
    imageButton.startAnimation(animation); 
+0

bene il suo lampeggiare molto lento come a lampeggiare velocemente. – question

+1

Modificare la durata come si desidera utilizzando setDuration() –

+0

come impostareDurata sotto "0" – question

8

** provare questo codice **

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);