开发者

Create Android TextSwitcher with a dynamically generated Textview

开发者 https://www.devze.com 2023-03-13 16:11 出处:网络
I intend to create a gallery-like TextSwitcher with TextView like this: See image http://img441.imageshack.us/img441/5610/textp.png

I intend to create a gallery-like TextSwitcher with TextView like this:

See image http://img441.imageshack.us/img441/5610/textp.png

When I click on a selected TextView, an activity will be launched.

I have read the Android API demo and many other posts, and I still cannot create anything like this. The APIdemo does not show me how to use TextView with TextSwitcher.

I believe http开发者_Python百科://www.java2s.com/Open-Source/Android/android-core/platform-frameworks-base/android/widget/TextSwitcher.java.htm is useful, but I do not know how to use this and link to my activity onCreate method and add in my dynamically generated textview.

What would be a working solution together with the XML content?


I got the following example in API demos from the following path

C:\Program Files\Android\android-sdk-windows\samples\android-10\ApiDemos\res\layout

and

C:\Program Files\Android\android-sdk-windows\samples\android-10\ApiDemos\src\com\example\android\apis\view

TextSwitcher1.java

public class TextSwitcher1 extends Activity implements
   ViewSwitcher.ViewFactory, View.OnClickListener {

   private TextSwitcher mSwitcher;

   private int mCounter = 0;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       setContentView(R.layout.text_switcher_1);

       mSwitcher = (TextSwitcher) findViewById(R.id.switcher);
       mSwitcher.setFactory(this);

       Animation in = AnimationUtils.loadAnimation(this,
               android.R.anim.fade_in);
       Animation out = AnimationUtils.loadAnimation(this,
               android.R.anim.fade_out);
       mSwitcher.setInAnimation(in);
       mSwitcher.setOutAnimation(out);

       Button nextButton = (Button) findViewById(R.id.next);
       nextButton.setOnClickListener(this);

       updateCounter();
   }

   public void onClick(View v) {
       mCounter++;
       updateCounter();
   }

   private void updateCounter() {
       mSwitcher.setText(String.valueOf(mCounter));
   }

   public View makeView() {
       TextView t = new TextView(this);
       t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
       t.setTextSize(36);
       return t;
   }

}

TextSwitcher_1.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button android:id="@+id/next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_switcher_1_next_text" />

    <TextSwitcher android:id="@+id/switcher"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>


I was not able to create a TextSwitcher with a dynamic TextView.

Instead, my alternative solution was to use ImageView instead. That way, I can create a gallery with horizontal scrolling as seen in the link.

0

精彩评论

暂无评论...
验证码 换一张
取 消