1f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy/* 2f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * Copyright (C) 2010 The Android Open Source Project 3f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * 4f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * Licensed under the Apache License, Version 2.0 (the "License"); 5f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * you may not use this file except in compliance with the License. 6f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * You may obtain a copy of the License at 7f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * 8f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * http://www.apache.org/licenses/LICENSE-2.0 9f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * 10f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * Unless required by applicable law or agreed to in writing, software 11f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * distributed under the License is distributed on an "AS IS" BASIS, 12f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * See the License for the specific language governing permissions and 14f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy * limitations under the License. 15f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy */ 16f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 17f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guypackage com.android.test.hwui; 18f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 19f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.app.Activity; 20f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.os.Bundle; 21f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.text.TextUtils; 22f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.view.View; 23f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.view.animation.Animation; 24f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.view.animation.AnimationUtils; 25f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.widget.LinearLayout; 26f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guyimport android.widget.TextView; 27f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 28f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy@SuppressWarnings({"UnusedDeclaration"}) 29f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guypublic class MarqueeActivity extends Activity { 30f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy @Override 31f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy protected void onCreate(Bundle savedInstanceState) { 32f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy super.onCreate(savedInstanceState); 33f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 34f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy final LinearLayout linearLayout = new LinearLayout(this); 35f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy linearLayout.setOrientation(LinearLayout.VERTICAL); 36f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 37f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy final TextView text1 = new TextView(this); 38f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text1.setText("This is a marquee inside a TextView"); 39f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text1.setSingleLine(true); 40f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text1.setHorizontalFadingEdgeEnabled(true); 41f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text1.setEllipsize(TextUtils.TruncateAt.MARQUEE); 42f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy linearLayout.addView(text1, new LinearLayout.LayoutParams( 43f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 100, LinearLayout.LayoutParams.WRAP_CONTENT)); 44f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 45f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy final TextView text2 = new TextView(this); 46f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text2.setText("This is a marquee inside a TextView"); 47f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text2.setSingleLine(true); 48f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text2.setHorizontalFadingEdgeEnabled(true); 49f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text2.setEllipsize(TextUtils.TruncateAt.MARQUEE); 50f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( 51f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 100, LinearLayout.LayoutParams.WRAP_CONTENT); 52f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy linearLayout.addView(text2, params); 53f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 54f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy setContentView(linearLayout); 55f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy 56f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy getWindow().getDecorView().postDelayed(new Runnable() { 57f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy @Override 58f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy public void run() { 59f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text2.setVisibility(View.INVISIBLE); 60f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy Animation animation = AnimationUtils.loadAnimation(text2.getContext(), 61f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy R.anim.slide_off_left); 62f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy animation.setFillEnabled(true); 63f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy animation.setFillAfter(true); 64f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy text2.startAnimation(animation); 65f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy } 66f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy }, 1000); 67f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy } 68f28daffda50042c1b7cbfeb34b4d47741c6e21a8Romain Guy} 69