Android Open Source - ildn-hub Splash






From Project

Back to project page ildn-hub.

License

The source code is released under:

GNU General Public License

If you think the Android project ildn-hub listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.ildn;
/*ww w . jav  a  2 s  .  c om*/
import net.ildn.fedorait.R;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Shader.TileMode;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.Toast;

public class Splash extends Activity {
  
  private String portaledefault = "";


  @Override
  protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     SharedPreferences settings = getSharedPreferences(
        this.getString(R.string.ildnPreference), 0);
     portaledefault = settings.getString("portaledefault",
        "nessuno");
     
     if (!portaledefault.equalsIgnoreCase("nessuno")) {
       Intent mainIntent = new Intent("net.ildn.SexySplash");
       startActivity(mainIntent);
       finish();
     }
     
     setContentView(R.layout.cover);
     //Toast.makeText(this, "ILDN: Italian Linux Distro Network", Toast.LENGTH_LONG).show();
       CoverFlow coverFlow = (CoverFlow)findViewById(R.id.coverflow);
       coverFlow.setAdapter(new ImageAdapter(this));
       ImageAdapter coverImageAdapter =  new ImageAdapter(this);
       coverImageAdapter.createReflectedImages();
       coverFlow.setAdapter(coverImageAdapter);
       coverFlow.setSpacing(-40);
       coverFlow.setSelection(1, true);
       coverFlow.setAnimationDuration(1000);

       coverFlow.setOnItemClickListener(new OnItemClickListener() {
         public void onItemClick(AdapterView parent, View v, int position, long id) {
              Intent mainIntent = null;
              switch (position) {
        case 0:
          mainIntent = new Intent(getString(R.string.portaledebian));
          startActivity(mainIntent);
          finish();
          break;
        case 1:
          mainIntent = new Intent(getString(R.string.portalefedora));
          startActivity(mainIntent);
          finish();
          break;
        case 2:
          mainIntent = new Intent(getString(R.string.portalesuse));
          startActivity(mainIntent);
          finish();
          break;
        case 3:
          mainIntent = new Intent(getString(R.string.portalemandriva));
          startActivity(mainIntent);
          finish();
          break;
        case 4:
          mainIntent = new Intent(getString(R.string.portalemageia));
          startActivity(mainIntent);
          finish();
          break;
        case 5:
          Toast.makeText(Splash.this, "Portale non ancora attivo", Toast.LENGTH_SHORT).show();
          break;
        default:
          mainIntent = new Intent(getString(R.string.portalefedora));
          startActivity(mainIntent);
          finish();
          break;
        } 
           }
    });
  }
  
   public class ImageAdapter extends BaseAdapter {
       int mGalleryItemBackground;
       private Context mContext;
          
       private Integer[] mImageIds = {
               R.drawable.debian,
               R.drawable.fedora,
               R.drawable.suse,
               R.drawable.mandriva,
               R.drawable.mageia
       };
  
       private ImageView[] mImages;
       
       public ImageAdapter(Context c) {
        mContext = c;
        mImages = new ImageView[mImageIds.length];
       }
    public boolean createReflectedImages() {
            //The gap we want between the reflection and the original image
            final int reflectionGap = 4;
            
            
            int index = 0;
            for (int imageId : mImageIds) {
          Bitmap originalImage = BitmapFactory.decodeResource(getResources(), 
            imageId);
             int width = originalImage.getWidth();
             int height = originalImage.getHeight();
             
       
             //This will not scale but will flip on the Y axis
             Matrix matrix = new Matrix();
             matrix.preScale(1, -1);
             
             //Create a Bitmap with the flip matrix applied to it.
             //We only want the bottom half of the image
             Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height/2, width, height/2, matrix, false);
             
                 
             //Create a new bitmap with same width but taller to fit reflection
             Bitmap bitmapWithReflection = Bitmap.createBitmap(width 
               , (height + height/2), Config.ARGB_8888);
           
            //Create a new Canvas with the bitmap that's big enough for
            //the image plus gap plus reflection
            Canvas canvas = new Canvas(bitmapWithReflection);
            //Draw in the original image
            canvas.drawBitmap(originalImage, 0, 0, null);
            //Draw in the gap
            Paint deafaultPaint = new Paint();
            canvas.drawRect(0, height, width, height + reflectionGap, deafaultPaint);
            //Draw in the reflection
            canvas.drawBitmap(reflectionImage,0, height + reflectionGap, null);
            
            //Create a shader that is a linear gradient that covers the reflection
            Paint paint = new Paint(); 
            LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, 
              bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, 
              TileMode.CLAMP); 
            //Set the paint to use this shader (linear gradient)
            paint.setShader(shader); 
            //Set the Transfer mode to be porter duff and destination in
            paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); 
            //Draw a rectangle using the paint with our linear gradient
            canvas.drawRect(0, height, width, 
              bitmapWithReflection.getHeight() + reflectionGap, paint); 
            
            ImageView imageView = new ImageView(mContext);
            imageView.setImageBitmap(bitmapWithReflection);
            imageView.setLayoutParams(new CoverFlow.LayoutParams(120, 180));
            imageView.setScaleType(ScaleType.MATRIX);
            mImages[index++] = imageView;
            
            }
         return true;
    }
  
       public int getCount() {
           return mImageIds.length;
       }
  
       public Object getItem(int position) {
           return position;
       }
  
       public long getItemId(int position) {
           return position;
       }
  
       public View getView(int position, View convertView, ViewGroup parent) {
      /*
        //Use this code if you want to load from resources
           ImageView i = new ImageView(mContext);
           i.setImageResource(mImageIds[position]);
           i.setLayoutParams(new CoverFlow.LayoutParams(130, 130));
           i.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
           
           //Make sure we set anti-aliasing otherwise we get jaggies
           BitmapDrawable drawable = (BitmapDrawable) i.getDrawable();
           drawable.setAntiAlias(true);
           return i;
        */
        return mImages[position];
       }
     /** Returns the size (0.0f to 1.0f) of the views 
        * depending on the 'offset' to the center. */ 
        public float getScale(boolean focused, int offset) { 
          /* Formula: 1 / (2 ^ offset) */ 
            return Math.max(0, 1.0f / (float)Math.pow(2, Math.abs(offset))); 
        } 
  
   }


}




Java Source Code List

net.ildn.Authentication.java
net.ildn.CoverFlow.java
net.ildn.DataRetriever.java
net.ildn.GlobalMenu.java
net.ildn.ImageAdapter.java
net.ildn.ListaPortali.java
net.ildn.NewsAdapter.java
net.ildn.NewsItemRow.java
net.ildn.OtherActivity.java
net.ildn.SexySplash.java
net.ildn.SimpleCrypto.java
net.ildn.Splash.java
net.ildn.UserCredential.java
net.ildn.WebContent.java
net.ildn.debianitalia.DebianBlogActivity.java
net.ildn.debianitalia.DebianForumActivity.java
net.ildn.debianitalia.DebianGuideActivity.java
net.ildn.debianitalia.DebianItalia.java
net.ildn.debianitalia.DebianNewsActivity.java
net.ildn.fedorait.BlogActivity.java
net.ildn.fedorait.ForumActivity.java
net.ildn.fedorait.GuideActivity.java
net.ildn.fedorait.NewsActivity.java
net.ildn.fedorait.fedorait.java
net.ildn.feed.AndroidSaxFeedParser.java
net.ildn.feed.BaseFeedParser.java
net.ildn.feed.FeedParser.java
net.ildn.feed.Message.java
net.ildn.mageiaitalia.MageiaBlogActivity.java
net.ildn.mageiaitalia.MageiaForumActivity.java
net.ildn.mageiaitalia.MageiaGuideActivity.java
net.ildn.mageiaitalia.MageiaItalia.java
net.ildn.mageiaitalia.MageiaNewsActivity.java
net.ildn.mandrivaitalia.MandrivaBlogActivity.java
net.ildn.mandrivaitalia.MandrivaForumActivity.java
net.ildn.mandrivaitalia.MandrivaGuideActivity.java
net.ildn.mandrivaitalia.MandrivaItalia.java
net.ildn.mandrivaitalia.MandrivaNewsActivity.java
net.ildn.suseitalia.SuseBlogActivity.java
net.ildn.suseitalia.SuseForumActivity.java
net.ildn.suseitalia.SuseGuideActivity.java
net.ildn.suseitalia.SuseItalia.java
net.ildn.suseitalia.SuseNewsActivity.java