Android学习之路十五:View

  Android应用程序中,用户界面的构造是使用View和ViewGroup对象。

  View和ViewGroup的种类很多,每一种都是View类的子类。

  在Android平台中,View对象是用户界面表现的基本单元。View对于子类最基本的服务叫做widgets,它提供了一个全部实现的UI对象,比如文本框(TextView),按钮(Button)等。ViewGroup对于子类最基本的服务叫layout,它提供各种不同的布局格式,比如线性布局(Linear),相对布局(relative)等。

  View对象是一个数据结构,其属性是屏幕指定的长方形区域,包括布局(layout)参数的很多内容,View对象能对屏幕的长方形区域做很多处理,比如尺寸、布局、绘画、焦点变化、滚动、键盘/手势等互动,作为用户界面的对象,View对于用户也是一个接收互动的活动点。

  获取屏幕大小:

  DisplayMetrics dm = new DisplayMetrics();

  getWindowManager().getDefaultDisplay().getMetrics(dm);

  屏幕宽为:dm.widthPixels;

  屏幕高为:dm.heightPixels;

  获取屏幕方向:

  Configuration config = getResources().getConfiguration();

  如果config.orientation == Configuration.ORIENTATION_LANDSCAPE;(横屏)

  如果config.orientation == Configuration.ORIENTATION_PORTRAIT;(竖屏)

  (屏幕放心改变时,Android系统会重新启动Activity。)

  

  保持屏幕方向不变:

  在AndroidMainfest.xml中加入

  android:screenOrientation = "landscape"(横向)

  android:screenOrientation = "portrait"(纵向)

  全屏设置:

  requestWindowFeature(Window.FEATURE_ON_TITLE);

  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

  注意:这些调用要放在setContentView()之前。

  保持屏幕常量:

  PowerManager powerManager = null;

  WakeLock wakeLock = null;

  powerManager = (PowerManager)this.getSystemService(Context.POWER_SERVICE);

  wakeLock = this.powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK,"myLock");

  this.wakeLock.acquire();

  需要关闭的时候调用this.wakeLock.release();

  屏幕截取:

  /*在按钮相应的方法里面实现*/

  public void onClick(View arg0){

    View v = arg0.getRootView();

    v.setDrawingCacheEnabled(true);

    Bitmap bm = v.getDrawingCache();

  }

  bm就是截取的屏幕,但此方法只能截取View的子类。

原文地址:https://www.cnblogs.com/thinksasa/p/2920273.html