اگه حالت چرخش رو توی گوشی تون فعال کنید ، وقتی که گوشی رو به حالت افقی نگه میدارید ، اتوماتیک برنامه ای هم که در حال اجرا هست ، خودش رو تطبیق میده با اون حالت . حالا اگه بخوایم کاری کنیم که وقتی گوشی به صورت نرمال و افقی توی دستمون هست ، یه چیزی رو نشون بده ، و وقتی گوشی رو میچرخونیم و به صورت افقی نگهش میداریم ، یه چیز دیگه نشون بده ، باید چه کرد ؟ خیلی راحته !
توی این مثال ساده ، میخوایم یه تکست ویو داشته باشیم که واسه هر دو حالت ، دو متن متفاوت رو نشون بده . پس توی لایوت اصلی ، این تکست ویو رو میندازیم :
1 2 3 4 5 6 7 8 9 10 11 |
<TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="" /> |
و توی اکتیویتی ، با استفاده از این تکه کد ، میگیم اگه حالت گوشی ما ، حالت نرمال و یا همون Portrait بود ، یه متنی رو نشون بده . و اگه حالت گوشی به خوابیده یا همون افقی یا Landscape تغییر پیدا کرد یه چیز دیگه رو نشون بده :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int orientation = getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_PORTRAIT) { // Portrait orientation textView.setText("You are currently in portrait orientation"); } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) { // Landscape orientation textView.setText("You are currently in landscape orientation"); } else { textView.setText("You are currently in undefined orientation"); } |
توی کد بالا ، اون else آخر حالت فان هست . چون گوشی ما یا افقی هست یا عمودی دیگه ! حالت سوم نداریم !! خروجی :
و سورس رو هم که میتونید از گیت هاب دانلود یا Clone کنید !!