Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.haarman.listviewanimations;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.Timer;
- import java.util.TimerTask;
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.os.Bundle;
- import android.support.v4.util.LruCache;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.AbsListView;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ImageView;
- import android.widget.ListView;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.haarman.listviewanimations.itemmanipulation.SwipeDismissAdapter;
- import com.haarman.listviewanimations.itemmanipulation.OnDismissCallback;
- import com.haarman.listviewanimations.swinginadapters.prepared.SwingBottomInAnimationAdapter;
- import com.ducky.animations.FlipAnimation;
- import com.example.mycard.R;
- public class GoogleCardsActivity1 extends Activity implements OnDismissCallback {
- private GoogleCardsAdapter mGoogleCardsAdapter;
- private static ListView listView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_googlecards);
- listView = (ListView) findViewById(R.id.activity_googlecards_listview);
- mGoogleCardsAdapter = new GoogleCardsAdapter(this);
- SwingBottomInAnimationAdapter swingBottomInAnimationAdapter = new SwingBottomInAnimationAdapter(
- new SwipeDismissAdapter(mGoogleCardsAdapter, this));
- swingBottomInAnimationAdapter.setAbsListView(listView);
- listView.setAdapter(swingBottomInAnimationAdapter);
- mGoogleCardsAdapter.addAll(getItems());
- }
- private ArrayList<Integer> getItems() {
- ArrayList<Integer> items = new ArrayList<Integer>();
- for (int i = 0; i < 100; i++) {
- items.add(i);
- }
- return items;
- }
- @Override
- public void onDismiss(AbsListView listView, int[] reverseSortedPositions) {
- for (int position : reverseSortedPositions) {
- mGoogleCardsAdapter.remove(position);
- }
- }
- private class GoogleCardsAdapter extends ArrayAdapter<Integer> {
- private Context mContext;
- private LruCache<Integer, Bitmap> mMemoryCache;
- ListView listView = (ListView) findViewById(R.id.activity_googlecards_listview);
- public GoogleCardsAdapter(Context context) {
- mContext = context;
- final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
- // Use 1/8th of the available memory for this memory cache.
- final int cacheSize = maxMemory;
- mMemoryCache = new LruCache<Integer, Bitmap>(cacheSize) {
- @Override
- protected int sizeOf(Integer key, Bitmap bitmap) {
- // The cache size will be measured in kilobytes rather than
- // number of items.
- return bitmap.getRowBytes() * bitmap.getHeight() / 1024;
- }
- };
- TimerTask mytask = new TimerTask() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- resetscroll();
- }
- };
- Timer timer = new Timer();
- timer.scheduleAtFixedRate(mytask, 150, 150);
- // ----------------------------------------
- // This flip card when item is selected
- // ----------------------------------------
- listView.setOnItemClickListener(new OnItemClickListener() {
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- flipCard(position);
- String currentposition;
- StringBuilder sb1 = new StringBuilder();
- sb1.append(position);
- currentposition = sb1.toString();
- Toast.makeText(getApplicationContext(), currentposition,
- Toast.LENGTH_LONG).show();
- }
- });
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder viewHolder;
- View view = convertView;
- if (view == null) {
- view = LayoutInflater.from(mContext).inflate(
- R.layout.activity_googlecards_card, parent, false);
- viewHolder = new ViewHolder();
- viewHolder.textView = (TextView) view
- .findViewById(R.id.activity_googlecards_card_textview);
- view.setTag(viewHolder);
- viewHolder.imageView = (ImageView) view
- .findViewById(R.id.activity_googlecards_card_imageview);
- } else {
- viewHolder = (ViewHolder) view.getTag();
- }
- viewHolder.textView.setText("This is card "
- + (getItem(position) + 1));
- setImageView(viewHolder, position);
- return view;
- }
- private void flipCard(int position) {
- View rootLayout = listView.getChildAt(position);
- View cardFace = listView.getChildAt(position);
- View cardBack = listView.getChildAt(1);
- FlipAnimation flipAnimation = new FlipAnimation(cardFace, cardBack);
- if (cardFace.getVisibility() == View.GONE) {
- flipAnimation.reverse();
- }
- rootLayout.startAnimation(flipAnimation);
- }
- public void resetscroll() {
- listView.smoothScrollToPosition(0, 0);
- }
- private void setImageView(ViewHolder viewHolder, int position) {
- int imageResId;
- switch (getItem(position) % 5) {
- case 0:
- imageResId = R.drawable.img_nature1;
- break;
- case 1:
- imageResId = R.drawable.img_nature2;
- break;
- case 2:
- imageResId = R.drawable.img_nature3;
- break;
- case 3:
- imageResId = R.drawable.img_nature4;
- break;
- default:
- imageResId = R.drawable.img_nature5;
- }
- Bitmap bitmap = getBitmapFromMemCache(imageResId);
- if (bitmap == null) {
- bitmap = BitmapFactory.decodeResource(mContext.getResources(),
- imageResId);
- addBitmapToMemoryCache(imageResId, bitmap);
- }
- viewHolder.imageView.setImageBitmap(bitmap);
- }
- private void addBitmapToMemoryCache(int key, Bitmap bitmap) {
- if (getBitmapFromMemCache(key) == null) {
- mMemoryCache.put(key, bitmap);
- }
- }
- private Bitmap getBitmapFromMemCache(int key) {
- return mMemoryCache.get(key);
- }
- private class ViewHolder {
- TextView textView;
- ImageView imageView;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement