OSDN Git Service

Automatic translation import
[android-x86/packages-apps-Eleven.git] / src / com / cyngn / eleven / dragdrop / SimpleFloatViewManager.java
1
2 package com.cyngn.eleven.dragdrop;
3
4 import android.graphics.Bitmap;
5 import android.graphics.Color;
6 import android.graphics.Point;
7 import android.view.View;
8 import android.widget.ImageView;
9 import android.widget.ListView;
10
11 /**
12  * Simple implementation of the FloatViewManager class. Uses list items as they
13  * appear in the ListView to create the floating View.
14  */
15 public class SimpleFloatViewManager implements DragSortListView.FloatViewManager {
16
17     private final ListView mListView;
18
19     private Bitmap mFloatBitmap;
20
21     private int mFloatBGColor = Color.BLACK;
22
23     public SimpleFloatViewManager(ListView lv) {
24         mListView = lv;
25     }
26
27     public void setBackgroundColor(int color) {
28         mFloatBGColor = color;
29     }
30
31     /**
32      * This simple implementation creates a Bitmap copy of the list item
33      * currently shown at ListView <code>position</code>.
34      */
35     @Override
36     public View onCreateFloatView(int position) {
37         View v = mListView.getChildAt(position + mListView.getHeaderViewsCount()
38                 - mListView.getFirstVisiblePosition());
39
40         if (v == null) {
41             return null;
42         }
43
44         v.setPressed(false);
45
46         v.setDrawingCacheEnabled(true);
47         mFloatBitmap = Bitmap.createBitmap(v.getDrawingCache());
48         v.setDrawingCacheEnabled(false);
49
50         ImageView iv = new ImageView(mListView.getContext());
51         iv.setBackgroundColor(mFloatBGColor);
52         iv.setPadding(0, 0, 0, 0);
53         iv.setImageBitmap(mFloatBitmap);
54
55         return iv;
56     }
57
58     /**
59      * Removes the Bitmap from the ImageView created in onCreateFloatView() and
60      * tells the system to recycle it.
61      */
62     @Override
63     public void onDestroyFloatView(View floatView) {
64         ((ImageView)floatView).setImageDrawable(null);
65
66         mFloatBitmap.recycle();
67         mFloatBitmap = null;
68     }
69
70     /**
71      * {@inheritDoc}
72      */
73     @Override
74     public void onDragFloatView(View floatView, Point position, Point touch) {
75         /* Nothing to do */
76     }
77 }