15ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller/* 25ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * Copyright (C) 2010 The Android Open Source Project 35ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * 45ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * Licensed under the Apache License, Version 2.0 (the "License"); 55ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * you may not use this file except in compliance with the License. 65ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * You may obtain a copy of the License at 75ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * 85ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * http://www.apache.org/licenses/LICENSE-2.0 95ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * 105ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * Unless required by applicable law or agreed to in writing, software 115ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * distributed under the License is distributed on an "AS IS" BASIS, 125ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * See the License for the specific language governing permissions and 145ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller * limitations under the License. 155ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller */ 165ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 175ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerpackage com.android.carouseltest; 185ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 195ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerimport com.android.ex.carousel.CarouselView; 20a3cb716626b477c98ba912698c765eab20f27286Jim Millerimport com.android.ex.carousel.CarouselViewHelper; 215ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 225ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerimport android.app.Activity; 23a3cb716626b477c98ba912698c765eab20f27286Jim Millerimport android.content.Context; 245ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerimport android.content.res.Resources; 255ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerimport android.graphics.Bitmap; 265ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerimport android.graphics.BitmapFactory; 275ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerimport android.os.Bundle; 285ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerimport android.util.Log; 295ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 305ce730797a8a7278dfe19dac8a9460b25675fed0Jim Millerpublic class MusicDemoActivity extends Activity { 31a3cb716626b477c98ba912698c765eab20f27286Jim Miller private static final String TAG = "MusicDemoActivity"; 325ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller private static final int CD_GEOMETRY = R.raw.book; 335ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller private static final int VISIBLE_SLOTS = 7; 345ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller private static final int CARD_SLOTS = 56; 355ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller private static final int TOTAL_CARDS = 10000; 365ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller private CarouselView mView; 37a3cb716626b477c98ba912698c765eab20f27286Jim Miller private int mImageResources[] = { 385ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_angel, 395ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_cool, 405ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_crying, 415ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_foot_in_mouth, 425ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_happy, 435ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_kissing, 445ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_laughing, 455ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_lips_are_sealed, 465ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_money_mouth, 475ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_sad, 485ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_surprised, 495ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_tongue_sticking_out, 505ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_undecided, 515ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_winking, 525ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_wtf, 535ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller R.drawable.emo_im_yelling 545ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller }; 555ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 56a3cb716626b477c98ba912698c765eab20f27286Jim Miller private LocalCarouselViewHelper mHelper; 575ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 58a3cb716626b477c98ba912698c765eab20f27286Jim Miller class LocalCarouselViewHelper extends CarouselViewHelper { 595ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 60a3cb716626b477c98ba912698c765eab20f27286Jim Miller LocalCarouselViewHelper(Context context) { 61a3cb716626b477c98ba912698c765eab20f27286Jim Miller super(context); 62a3cb716626b477c98ba912698c765eab20f27286Jim Miller } 635ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 64a3cb716626b477c98ba912698c765eab20f27286Jim Miller @Override 65a3cb716626b477c98ba912698c765eab20f27286Jim Miller public void onCardSelected(int id) { 66a3cb716626b477c98ba912698c765eab20f27286Jim Miller Log.v(TAG, "Yay, item " + id + " was selected!"); 67a3cb716626b477c98ba912698c765eab20f27286Jim Miller } 685ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 69a3cb716626b477c98ba912698c765eab20f27286Jim Miller @Override 70a3cb716626b477c98ba912698c765eab20f27286Jim Miller public Bitmap getTexture(int n) { 71a3cb716626b477c98ba912698c765eab20f27286Jim Miller return BitmapFactory.decodeResource(getResources(), 72a3cb716626b477c98ba912698c765eab20f27286Jim Miller mImageResources[n % mImageResources.length]); 73a3cb716626b477c98ba912698c765eab20f27286Jim Miller } 74a3cb716626b477c98ba912698c765eab20f27286Jim Miller 75a3cb716626b477c98ba912698c765eab20f27286Jim Miller @Override 76a3cb716626b477c98ba912698c765eab20f27286Jim Miller public Bitmap getDetailTexture(int n) { 77a3cb716626b477c98ba912698c765eab20f27286Jim Miller return null; 78a3cb716626b477c98ba912698c765eab20f27286Jim Miller } 79a3cb716626b477c98ba912698c765eab20f27286Jim Miller }; 805ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 81a3cb716626b477c98ba912698c765eab20f27286Jim Miller @Override 82a3cb716626b477c98ba912698c765eab20f27286Jim Miller protected void onCreate(Bundle savedInstanceState) { 83a3cb716626b477c98ba912698c765eab20f27286Jim Miller super.onCreate(savedInstanceState); 845ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller final Resources res = getResources(); 855ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller setContentView(R.layout.music_demo); 865ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller mView = (CarouselView) findViewById(R.id.carousel); 87a3cb716626b477c98ba912698c765eab20f27286Jim Miller mHelper = new LocalCarouselViewHelper(this); 88a3cb716626b477c98ba912698c765eab20f27286Jim Miller mHelper.setCarouselView(mView); 895ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller mView.setSlotCount(CARD_SLOTS); 905ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller mView.createCards(TOTAL_CARDS); 915ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller mView.setVisibleSlots(VISIBLE_SLOTS); 925ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller mView.setStartAngle((float) -(2.0f*Math.PI * 5 / CARD_SLOTS)); 935ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller mView.setDefaultBitmap(BitmapFactory.decodeResource(res, R.drawable.wait)); 945ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller mView.setLoadingBitmap(BitmapFactory.decodeResource(res, R.drawable.blank_album)); 959afba8c61f6aff94c68acbfaae1cc58bd28c13eaJim Miller mView.setBackgroundBitmap(BitmapFactory.decodeResource(res, R.drawable.background)); 96396b1eb70452e27942550efaa06e10da84fc58dbJim Miller mView.setDefaultGeometry(CD_GEOMETRY); 97420b44b8b11ec1c309ea130e69a6876325dbfef9Jim Miller mView.setFadeInDuration(250); 98420b44b8b11ec1c309ea130e69a6876325dbfef9Jim Miller mView.setRezInCardCount(3.0f); 99fb179e7afd8f02be63061b478b0283e3085fc25fJim Miller mView.setForceBlendCardsWithZ(false); 1005ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller } 1015ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 1025ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller @Override 1035ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller protected void onResume() { 1045ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller super.onResume(); 105a3cb716626b477c98ba912698c765eab20f27286Jim Miller mHelper.onResume(); 1065ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller } 1075ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller 1085ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller @Override 1095ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller protected void onPause() { 1105ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller super.onPause(); 111a3cb716626b477c98ba912698c765eab20f27286Jim Miller mHelper.onPause(); 1125ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller } 1135ce730797a8a7278dfe19dac8a9460b25675fed0Jim Miller} 114