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