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