14299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy/*
24299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * Copyright (C) 2010 The Android Open Source Project
34299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy *
44299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * Licensed under the Apache License, Version 2.0 (the "License");
54299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * you may not use this file except in compliance with the License.
64299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * You may obtain a copy of the License at
74299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy *
84299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy *      http://www.apache.org/licenses/LICENSE-2.0
94299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy *
104299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * Unless required by applicable law or agreed to in writing, software
114299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * distributed under the License is distributed on an "AS IS" BASIS,
124299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * See the License for the specific language governing permissions and
144299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy * limitations under the License.
154299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy */
164299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
17f607bdc167f66b3e7003acaa4736ae46d78c1492Romain Guypackage com.android.test.hwui;
184299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
194299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.app.Activity;
204299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.content.Context;
214299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.content.Intent;
224299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.graphics.Bitmap;
234299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.graphics.Canvas;
244299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.graphics.PorterDuff;
254299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.graphics.drawable.ColorDrawable;
264299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.os.Bundle;
274299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.view.LayoutInflater;
284299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.widget.ImageView;
294299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guyimport android.widget.LinearLayout;
304299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
314299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy@SuppressWarnings({"UnusedDeclaration"})
324299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guypublic class TextGammaActivity extends Activity {
334299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy    @Override
344299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy    protected void onCreate(Bundle savedInstanceState) {
354299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        super.onCreate(savedInstanceState);
364299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
374299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        final LinearLayout layout = new LinearLayout(this);
384299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        layout.setOrientation(LinearLayout.VERTICAL);
394299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
404299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        final GammaTextView gamma = new GammaTextView(this);
414299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        layout.addView(gamma, new LinearLayout.LayoutParams(
424299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT
434299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        ));
444299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
454299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        setContentView(layout);
46ec31a7f119608b94ea1bb41275811027a360bf30Xavier Ducrohet
474299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        layout.post(new Runnable() {
484299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            public void run() {
494299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                Bitmap b = Bitmap.createBitmap(gamma.getWidth(), gamma.getHeight(),
504299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                        Bitmap.Config.ARGB_8888);
514299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                Canvas c = new Canvas(b);
524299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                c.drawColor(0, PorterDuff.Mode.CLEAR);
534299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                gamma.draw(c);
544299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
554299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                ImageView image = new ImageView(TextGammaActivity.this);
564299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                image.setImageBitmap(b);
574299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
584299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                layout.addView(image, new LinearLayout.LayoutParams(
594299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                        LinearLayout.LayoutParams.WRAP_CONTENT,
604299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                        LinearLayout.LayoutParams.WRAP_CONTENT
614299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                ));
624299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
634299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                startActivity(new Intent(TextGammaActivity.this, SubGammaActivity.class));
644299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            }
654299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        });
664299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
674299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        getWindow().setBackgroundDrawable(new ColorDrawable(0xffffffff));
684299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy    }
694299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
704299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy    static class GammaTextView extends LinearLayout {
714299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        GammaTextView(Context c) {
724299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            super(c);
734299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
744299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            setBackgroundColor(0xffffffff);
754299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
764299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            final LayoutInflater inflater = LayoutInflater.from(c);
774299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            inflater.inflate(R.layout.text_large, this, true);
784299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            inflater.inflate(R.layout.text_medium, this, true);
794299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            inflater.inflate(R.layout.text_small, this, true);
804299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        }
814299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy    }
824299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
834299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy    public static class SubGammaActivity extends Activity {
844299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        @Override
854299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        protected void onCreate(Bundle savedInstanceState) {
864299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            super.onCreate(savedInstanceState);
874299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
884299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            final LinearLayout layout = new LinearLayout(this);
894299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            layout.setOrientation(LinearLayout.VERTICAL);
90ec31a7f119608b94ea1bb41275811027a360bf30Xavier Ducrohet
914299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            final GammaTextView gamma = new GammaTextView(this);
924299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
934299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy                    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT
944299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            );
954299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            lp.setMargins(0, 74, 0, 0);
964299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            layout.addView(gamma, lp);
974299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy
984299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy            setContentView(layout);
994299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy        }
1004299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy    }
1014299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38Romain Guy}
102