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