حرکت کردن متن در یک TextView ، از سمت راست به چپ و یا از سمت چپ به راست، با استفاده از Animation ، در برنامه نویسی اندروید
در مبحثی دیگر، آموزش دادیم که چگونه می توان با استفاده از برخی مشخصه های TextView ، تعیین کنیم که متن درون TextView ، از سمت راست به چپ، حرکت کند. اکنون می خواهیم نحوه حرکت کردن متن درون TextView ، با استفاده از Animation را آموزش بدهیم.
دقت شود که واحدهای به کار رفته در این مبحث، برای صفحه های نمایش مختلف، بهینه سازی نشده اند و تنها هدف مبحث این بوده که ساختار کدها را یاد بگیرید، در صورت تمایل، می توانید از واحدهای مناسب برای صفحه نمایش های مختلف استفاده کنید.
در فایل xml ، دو TextView تعریف می کنیم زیرا می خواهیم در یکی از آنها، متن از سمت راست به سمت چپ (textViewMarqToLeft) و در دیگری، متن از سمت چپ به سمت راست (textViewMarqToRight) حرکت کند :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewMarqToLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textViewMarqToRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
کدهای زیر را در میان کدهای Activity متناظر می نویسیم (درون فایل java مربوط به Activity) :
animationToLeft.setDuration(12000);
animationToLeft.setRepeatMode(Animation.RESTART);
animationToLeft.setRepeatCount(Animation.INFINITE);
Animation animationToRight = new TranslateAnimation(0,400, 0, 0);
animationToRight.setDuration(12000);
animationToRight.setRepeatMode(Animation.RESTART);
animationToRight.setRepeatCount(Animation.INFINITE);
TextView textViewMarqToLeft = (TextView) findViewById(R.id.textViewMarqToLeft);
TextView textViewMarqToRight = (TextView) findViewById(R.id.textViewMarqToRight);
textViewMarqToLeft.setAnimation(animationToLeft);
textViewMarqToRight.setAnimation(animationToRight);
String textLeft = "Left marquue";
String textRight = "Right marquue";
textViewMarqToLeft.setText(textLeft);
textViewMarqToRight.setText(textRight);
نتیجه به صورت زیر می باشد :
همان طور که مشاهده می کنید، در اولین TextView ، متن از سمت راست به سمت چپ و در دومین TextView ، متن از سمت چپ به سمت راست حرکت می کند.
کدهای این مبحث، بر اساس منبع زیر می باشند :
http://stackoverflow.com/questions/11503830/androidhow-to-move-marquee-text-from-right-to-left-and-left-and-right-by-clicki
بازم مثل همیشه
عالی
سولی داشتم:
اگر متن ما بیش از دو جمله باشه
به صورت چند خطی نشون میده!!
چیکار کنم به صورت تک خطی نشون بده؟؟