Home | History | Annotate | Download | only in app
      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 }
    116