EX05_22.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:3k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex05_22;
  2. import android.app.Activity;
  3. import android.content.pm.ActivityInfo;
  4. import android.os.Bundle;
  5. import android.view.Display;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.TextView;
  9. import android.widget.Toast;
  10. public class EX05_22 extends Activity
  11. {
  12.   private TextView mTextView01;
  13.   private Button mButton01;
  14.   
  15.   /** Called when the activity is first created. */
  16.   @Override
  17.   public void onCreate(Bundle savedInstanceState)
  18.   {
  19.     super.onCreate(savedInstanceState);
  20.     setContentView(R.layout.main);
  21.     
  22.     mButton01 = (Button)findViewById(R.id.myButton1); 
  23.     mTextView01 = (TextView)findViewById(R.id.myTextView1);
  24.     
  25.     if(getRequestedOrientation()==-1)
  26.     {
  27.       mTextView01.setText(getResources().getText
  28.       (R.string.str_err_1001));
  29.     }
  30.     
  31.     /* 当点击按钮旋转屏幕画面 */
  32.     mButton01.setOnClickListener(new Button.OnClickListener()
  33.     {
  34.       @Override
  35.       public void onClick(View arg0)
  36.       {
  37.         /* 方法一:重写getRequestedOrientation */
  38.         
  39.         /* 若无法取得screenOrientation属性 */
  40.         if(getRequestedOrientation()==-1)
  41.         {
  42.           /* 提示无法进行画面旋转功能,因无法判别Orientation */
  43.           mTextView01.setText(getResources().getText
  44.           (R.string.str_err_1001));
  45.         }
  46.         else
  47.         {
  48.           if(getRequestedOrientation()==
  49.              ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
  50.           {
  51.             /* 若当下为横排,则更改为竖排呈现 */
  52.             setRequestedOrientation
  53.             (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  54.           }
  55.           else if(getRequestedOrientation()==
  56.                   ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
  57.           {
  58.             /* 若当下为竖排,则更改为横排呈现 */
  59.             setRequestedOrientation
  60.             (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  61.           }
  62.         }
  63.       }      
  64.     });
  65.   }
  66.   @Override
  67.   public void setRequestedOrientation(int requestedOrientation)
  68.   {
  69.     // TODO Auto-generated method stub
  70.     
  71.     /* 判断要更改的方向,以Toast提示 */
  72.     switch(requestedOrientation)
  73.     {
  74.       /* 更改为LANDSCAPE */
  75.       case (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE):
  76.         mMakeTextToast
  77.         (
  78.           getResources().getText(R.string.str_msg1).toString(),
  79.           false
  80.         );
  81.         break;
  82.       /* 更改为PORTRAIT */
  83.       case (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT):
  84.         mMakeTextToast
  85.         (
  86.           getResources().getText(R.string.str_msg2).toString(),
  87.           false
  88.         );
  89.         break;
  90.     }
  91.     super.setRequestedOrientation(requestedOrientation);
  92.   }
  93.   @Override
  94.   public int getRequestedOrientation()
  95.   {
  96.     // TODO Auto-generated method stub
  97.     
  98.     /* 此重写getRequestedOrientation方法,可取得当下屏幕的方向 */
  99.     return super.getRequestedOrientation();
  100.   }
  101.   
  102.   public void mMakeTextToast(String str, boolean isLong)
  103.   {
  104.     if(isLong==true)
  105.     {
  106.       Toast.makeText(EX05_22.this, str, Toast.LENGTH_LONG).show();
  107.     }
  108.     else
  109.     {
  110.       Toast.makeText(EX05_22.this, str, Toast.LENGTH_SHORT).show();
  111.     }
  112.   }
  113. }