آموزش TextSwitcher در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه اندروید به آموزش TextSwitcher در برنامه نویسی اندروید می پردازیم از TextSwitcher برای ساخت یک اسلایدر متن استفاده می شود یعنی شبیه به اسلاید عکس می ماند فقط مقدار ورودی آن متن است در ادامه با ما همراه باشید.
در ابتدا یک فایل به نام example_layout.xml ایجاد کرده و کد های زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextSwitcher android:layout_marginTop="50dp" android:id="@+id/textSwitcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <Button android:id="@+id/buttonNext" android:layout_marginTop="150dp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="NEXT" /> </LinearLayout> |
در بالا ما یک TextSwitcher قرار داده ایم و یک دکمه برای رفتن به متن بعدی (یعنی با کلیک بروی دکمه مقدار TextSitcher تغییر می کند).
حالا یک کلاس به نام MainActivity.java ایجاد کرده کد های زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public class MainActivity extends Activity { private TextSwitcher mSwitcher; Button btnNext; String textToShow[]={"Programchi is","The best","Site of ","programming","Site","For Ever !"}; int messageCount=textToShow.length; int currentIndex=-1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.example_layout); btnNext=(Button)findViewById(R.id.buttonNext); mSwitcher = (TextSwitcher) findViewById(R.id.textSwitcher); mSwitcher.setFactory(new ViewFactory() { public View makeView() { TextView myText = new TextView(MainActivity.this); myText.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); myText.setTextSize(36); myText.setTextColor(Color.BLUE); return myText; } }); Animation in = AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left); Animation out = AnimationUtils.loadAnimation(this,android.R.anim.slide_out_right); mSwitcher.setInAnimation(in); mSwitcher.setOutAnimation(out); btnNext.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub currentIndex++; if(currentIndex==messageCount) currentIndex=0; mSwitcher.setText(textToShow[currentIndex]); } }); } } |
در ایتدا ما یک متغیر از نوع TextSwitcher و یک متغیر از نوع button برای قرار دادن view آنها استفاده کردیم و textToShow یک آرایه از متن هایی است که می خواهیم هر کدام از آنها را در هر اسلاید به نمایش در بیاوریم از setFactory برای ایجاد یک object از نوع TextView استفاده کردیم یکسری ویژگی را برای TextView ایجاد شده تعریف کردیم به طور مثال این که در وسط و بالا TextView ما قرار گیرد و اندازه آن برابر با 36dp باشد و رنگ آن آبی باشد.
بعد از آن Animation را تعریف کردیم تا هنگام تغییر متن یک انیمیشنی اجرا شود ما از انیمیشن های درون ساخت اندروید استفاده کرده ایم اگر دوست داشتید می توانید از انیمیشن های دیگری استفاده کنید قبلا آموزش ساخت انیمیشن را در سایت قرار داده ایم کافی است در سایت جستجو کنید.
ما دو تا انیمیشن تعریف کردیم اولی برای زمانی که وارد می شود دومی برای زمانی که درحال خارج شدن است و از setInAnimation و setOutAnimation برای قرار دادن بروی TextSwitcher استفاده کردیم و زمانی که بروی دکمه کلیک می شود index تغییر می کند (به متن بعدی می رود ) و ما شرطی گذاشتیم که زمانی که به آخرین آن رسید index صفر می شود تا به اولی برویم.
این آموزش هم به پایان رسید.
موفق باشید.