1e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase/* 2e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * Copyright (C) 2012 The Android Open Source Project 3e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * 4e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * Licensed under the Apache License, Version 2.0 (the "License"); 5e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * you may not use this file except in compliance with the License. 6e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * You may obtain a copy of the License at 7e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * 8e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * http://www.apache.org/licenses/LICENSE-2.0 9e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * 10e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * Unless required by applicable law or agreed to in writing, software 11e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * distributed under the License is distributed on an "AS IS" BASIS, 12e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * See the License for the specific language governing permissions and 14e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase * limitations under the License. 15e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase */ 16e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 17e816baea651476aca4407200d4a5e629b9ab8dfaChet Haasepackage com.android.test.hwui; 18e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 19e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 20e816baea651476aca4407200d4a5e629b9ab8dfaChet Haaseimport android.app.Activity; 21e816baea651476aca4407200d4a5e629b9ab8dfaChet Haaseimport android.os.Bundle; 22e816baea651476aca4407200d4a5e629b9ab8dfaChet Haaseimport android.view.ViewGroup; 23e816baea651476aca4407200d4a5e629b9ab8dfaChet Haaseimport android.widget.LinearLayout; 24e816baea651476aca4407200d4a5e629b9ab8dfaChet Haaseimport android.widget.ScrollView; 25e816baea651476aca4407200d4a5e629b9ab8dfaChet Haaseimport android.widget.TextView; 26e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 27e816baea651476aca4407200d4a5e629b9ab8dfaChet Haaseimport static android.widget.LinearLayout.LayoutParams; 28e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 29e816baea651476aca4407200d4a5e629b9ab8dfaChet Haasepublic class GlyphCacheActivity extends Activity { 30e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 31e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase private static final String mCharacterSet = "abcdefghijklmnopqrstuvwxyz" + 32e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "~!@#$%^&*()_+-={}[]:\";'<>?,./"; 33e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase private int mTotalChars = 0; 34e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 35e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase @Override 36e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase protected void onCreate(Bundle savedInstanceState) { 37e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase super.onCreate(savedInstanceState); 38e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 39e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase ScrollView scrollView = new ScrollView(this); 40e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase scrollView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 41e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase ViewGroup.LayoutParams.MATCH_PARENT)); 42e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase LinearLayout layout = new LinearLayout(this); 43e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase layout.setOrientation(LinearLayout.VERTICAL); 44e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase layout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 45e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase ViewGroup.LayoutParams.WRAP_CONTENT)); 46e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase scrollView.addView(layout); 47e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 48e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase while (mTotalChars < 10000) { 49e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase layout.addView(createTextView()); 50e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase } 51e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase setContentView(scrollView); 52e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase } 53e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 54e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase private TextView createTextView() { 55e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase TextView textview = new TextView(this); 56e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase textview.setTextSize(6 + (int) (Math.random() * 5) * 10); 57e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase textview.setTextColor(0xff << 24 | (int) (Math.random() * 255) << 16 | 58e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase (int) (Math.random() * 255) << 8 | (int) (Math.random() * 255) << 16); 59e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase textview.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 60e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase ViewGroup.LayoutParams.WRAP_CONTENT)); 61e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase int numChars = 5 + (int) (Math.random() * 10); 62e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase mTotalChars += numChars; 63e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase textview.setText(createString(numChars)); 64e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 65e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase return textview; 66e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase } 67e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase 68e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase private String createString(int length) { 69e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase StringBuilder sb = new StringBuilder(); 70e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase for (int i = 0; i < length; i++) { 71e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase sb.append(mCharacterSet.charAt((int)(Math.random() * mCharacterSet.length()))); 72e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase } 73e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase return sb.toString(); 74e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase } 75e816baea651476aca4407200d4a5e629b9ab8dfaChet Haase} 76