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

android开发

开发平台:

Java

  1. package irdc.ex05_23;
  2. import android.app.Activity;
  3. import android.content.pm.ActivityInfo;
  4. import android.content.res.Configuration;
  5. import android.os.Bundle;
  6. import android.view.Display;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.TextView;
  10. import android.widget.Toast;
  11. public class EX05_23 extends Activity
  12. {
  13.   private TextView mTextView01;
  14.   private Button mButton01;
  15.   
  16.   /* 屏幕宽高 */
  17.   private int intScreenH,intScreenW;
  18.   
  19.   /** Called when the activity is first created. */
  20.   @Override
  21.   public void onCreate(Bundle savedInstanceState)
  22.   {
  23.     super.onCreate(savedInstanceState);
  24.     setContentView(R.layout.main);
  25.     
  26.     /* 声明Display对象,以取得屏幕宽高 */
  27.     final Display defaultDisplay = 
  28.     getWindow().getWindowManager().getDefaultDisplay();
  29.     
  30.     intScreenH= defaultDisplay.getHeight();
  31.     intScreenW = defaultDisplay.getWidth();
  32.     
  33.     mButton01 = (Button)findViewById(R.id.myButton1); 
  34.     mTextView01 = (TextView)findViewById(R.id.myTextView1);
  35.     mTextView01.setText
  36.     (
  37.       Integer.toString(intScreenW)+
  38.       "x"+
  39.       Integer.toString(intScreenH)
  40.     );
  41.     
  42.     /* 当宽>高,表示为横式显示 */
  43.     if(intScreenW > intScreenH)
  44.     {
  45.       /* Landscape */
  46.       mButton01.setText(R.string.str_button2);
  47.     }
  48.     else
  49.     {
  50.       /* Portrait */
  51.       mButton01.setText(R.string.str_button1);
  52.     }
  53.     
  54.     /* 按钮事件处理切换宽高 */
  55.     mButton01.setOnClickListener(new Button.OnClickListener()
  56.     {
  57.       @Override
  58.       public void onClick(View v)
  59.       {
  60.         // TODO Auto-generated method stub
  61.         intScreenH= defaultDisplay.getHeight();
  62.         intScreenW = defaultDisplay.getWidth();
  63.         
  64.         /* 如果为Landscape */
  65.         if(intScreenW > intScreenH)
  66.         {
  67.           /* Landscape => Portrait */
  68.           setRequestedOrientation
  69.           (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  70.         }
  71.         else
  72.         {
  73.           /* Portrait => Landscape */
  74.           setRequestedOrientation
  75.           (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  76.         }
  77.         
  78.         /* 再一次取得屏幕宽高 */
  79.         intScreenH= defaultDisplay.getHeight();
  80.         intScreenW = defaultDisplay.getWidth();
  81.         mTextView01.setText
  82.         (
  83.           Integer.toString(intScreenW)+
  84.           "x"+
  85.           Integer.toString(intScreenH)
  86.         );
  87.       }
  88.     });
  89.   }  
  90.   
  91.   @Override
  92.   public void onConfigurationChanged(Configuration newConfig)
  93.   {
  94.     // TODO Auto-generated method stub
  95.     
  96.     /* 重写onConfigurationChanged事件,捕捉当设置之后的值 */
  97.     if (newConfig.orientation == 
  98.         Configuration.ORIENTATION_LANDSCAPE)
  99.     {
  100.       /* 趁着事件发生之后,更改按钮上的文字 */
  101.       mButton01.setText(R.string.str_button2);
  102.       mMakeTextToast
  103.       (
  104.         getResources().getText
  105.         (R.string.str_onConf_LANDSCAPE).toString(),
  106.         false
  107.       );
  108.     }
  109.     
  110.     /* 须设置configChanges属性才能捕捉onConfigurationChanged */
  111.     if (newConfig.orientation == 
  112.         Configuration.ORIENTATION_PORTRAIT)
  113.     {
  114.       mButton01.setText(R.string.str_button1);
  115.       mMakeTextToast
  116.       (
  117.         getResources().getText
  118.         (R.string.str_onConf_PORTRAIT).toString(),
  119.         false
  120.       );
  121.     }
  122.     
  123.     if (newConfig.keyboardHidden == 
  124.         Configuration.KEYBOARDHIDDEN_NO)
  125.     {
  126.      
  127.     }
  128.     super.onConfigurationChanged(newConfig);
  129.   }
  130.   
  131.   public void mMakeTextToast(String str, boolean isLong)
  132.   {
  133.     if(isLong==true)
  134.     {
  135.       Toast.makeText(EX05_23.this, str, Toast.LENGTH_LONG).show();
  136.     }
  137.     else
  138.     {
  139.       Toast.makeText(EX05_23.this, str, Toast.LENGTH_SHORT).show();
  140.     }
  141.   }
  142. }