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