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.
精彩评论