close
The Wayback Machine - https://web.archive.org/web/20160328031840/https://developer.android.com/samples/SkeletonWearableApp/src/com.example.android.google.wearable.app/GridExampleActivity.html
Show navigation Hide navigation
SkeletonWearableApp / src / com.example.android.google.wearable.app /

GridExampleActivity.java

1
/*
2
 * Copyright (C) 2014 The Android Open Source Project
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
 
17
package com.example.android.google.wearable.app;
18
 
19
import android.app.Activity;
20
import android.app.Fragment;
21
import android.app.FragmentManager;
22
import android.content.Context;
23
import android.graphics.Bitmap;
24
import android.graphics.Canvas;
25
import android.graphics.Color;
26
import android.graphics.Paint;
27
import android.graphics.Point;
28
import android.graphics.Typeface;
29
import android.graphics.Paint.Align;
30
import android.graphics.drawable.BitmapDrawable;
31
import android.graphics.drawable.Drawable;
32
import android.os.Bundle;
33
import android.support.wearable.view.CardFragment;
34
import android.support.wearable.view.FragmentGridPagerAdapter;
35
import android.support.wearable.view.GridViewPager;
36
 
37
import java.util.HashMap;
38
import java.util.Map;
39
 
40
public class GridExampleActivity extends Activity {
41
    private static final int NUM_ROWS = 10;
42
    private static final int NUM_COLS = 3;
43
 
44
    MainAdapter mAdapter;
45
    GridViewPager mPager;
46
 
47
 
48
    @Override
49
    protected void onCreate(Bundle savedInstanceState) {
50
        super.onCreate(savedInstanceState);
51
        setContentView(R.layout.grid_activity);
52
        mPager = (GridViewPager) findViewById(R.id.fragment_container);
53
        mAdapter = new MainAdapter(this, getFragmentManager());
54
        mPager.setAdapter(mAdapter);
55
 
56
    }
57
 
58
    private static class MainAdapter extends FragmentGridPagerAdapter{
59
        Map<Point, Drawable> mBackgrounds = new HashMap<Point, Drawable>();
60
        private Context mContext;
61
 
62
        public MainAdapter(Context ctx, FragmentManager fm) {
63
            super(fm);
64
            mContext = ctx;
65
        }
66
 
67
        @Override
68
        public int getRowCount() {
69
            return NUM_ROWS;
70
        }
71
 
72
        @Override
73
        public int getColumnCount(int rowNum) {
74
            return NUM_COLS;
75
        }
76
 
77
        @Override
78
        public Fragment getFragment(int rowNum, int colNum) {
79
            return MainFragment.newInstance(rowNum, colNum);
80
        }
81
 
82
        @Override
83
        public Drawable getBackgroundForPage(int row, int column) {
84
            Point pt = new Point(column, row);
85
            Drawable drawable = mBackgrounds.get(pt);
86
            if (drawable == null) {
87
                Bitmap bm = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
88
                Canvas c = new Canvas(bm);
89
                Paint p = new Paint();
90
                // Clear previous image.
91
                c.drawRect(0, 0, 200, 200, p);
92
                p.setAntiAlias(true);
93
                p.setTypeface(Typeface.DEFAULT);
94
                p.setTextSize(64);
95
                p.setColor(Color.LTGRAY);
96
                p.setTextAlign(Align.CENTER);
97
                c.drawText(column+ "-" + row, 100, 100, p);
98
                drawable = new BitmapDrawable(mContext.getResources(), bm);
99
                mBackgrounds.put(pt, drawable);
100
            }
101
            return drawable;
102
        }
103
    }
104
 
105
    public static class MainFragment extends CardFragment {
106
        private static MainFragment newInstance(int rowNum, int colNum) {
107
            Bundle args = new Bundle();
108
            args.putString(CardFragment.KEY_TITLE, "Row:" + rowNum);
109
            args.putString(CardFragment.KEY_TEXT, "Col:" + colNum);
110
            MainFragment f = new MainFragment();
111
            f.setArguments(args);
112
            return f;
113
        }
114
    }
115
}