Android Activity 全屏、横竖屏和截屏

 

Android Activity 常用功能设置(全屏、横竖屏等)

Activity全屏设置

方式1:AndroidManifest.xml

<activity android:name="myAcitivty"  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

如果应用程序中所有窗口都采用同一主题,可以直接通过<application>标签的<android:theme>属性设置这个主题,代码如下:

<application android:name="myAcitivty"  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >

....

</application>

如果不想使用系统提供的主题,还可以自定义主题.例如,可以在res/values目录建立一个styles.xml文件.

<resources>

    <!--       Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!-- Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.    -->
    </style>
    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>
    <style name="Theme.FullScreen" parent="android:Theme">
        <item name="android:windowNoTitle">true</item>
          <item name="android:windowFullscreen">true</item>  
    </style>
</resources>


方式2:代码实现

requestWindowFeature(Window.FEATURE_NO_TITLE);  // 隐藏标题栏必须在setContentView(R.layout.main) 之前因为标题栏属于窗口,而窗口上的所有控件都是由setContentView(R.layout.main) 方法处理的.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);  // 隐藏状态栏

//可以在setContentView(R.layout.main) 之前或者之后.而setFlag方法只是控制系统UI的,所以该方法可以在代码的任何位置调用.

注意:设置全屏的俩段代码必须在setContentView(R.layout.main) 之前,不然会报错。


Activity横竖屏设置

方式1:AndroidManifest.xml

<activity android:name="myAcitivty"  android:screenOrientation="landscape" /> // 或者 “portrait

方式2:代码实现

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

获取横屏方向

int orientation = this.getResources().getConfiguration().orientation;

orientation 的常用取值可以为 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE(横屏) 或 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT(竖屏)


Activity屏幕一直显示

1:AndroidManifest.xml添加权限

<uses-permission android:name="android.permission.WAKE_LOCK" />

2:代码实现

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

把下列方法添加到Activity里面,菜单或者按钮只需调用即可,很好用的.

pubulic void saveScreenImage()  
{  
View view = getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap b1 = view.getDrawingCache();
// 获取状态栏高度
Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
System.out.println(statusBarHeight);
// 获取屏幕长和高
int width = getWindowManager().getDefaultDisplay().getWidth();
int height = getWindowManager().getDefaultDisplay().getHeight();
// 去掉标题栏
// Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);
Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height
- statusBarHeight);
view.destroyDrawingCache();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.US);
//保存在Sd卡根目录下,注意添加访问权限
String fname = "/captureScreen" + sdf.format(new Date()) + ".png";
File strFileName = new File(Environment.getExternalStorageDirectory(),fname);
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(strFileName);
if (null != fos)
{
b.compress(Bitmap.CompressFormat.PNG, 90, fos);
System.out.println("--file success");
fos.flush();
fos.close();
}
} catch (IOException e)
{
System.out.println("--io error");
e.printStackTrace();
}
}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值