Android开发之改动屏幕方向

有的场景下,我们须要把手机屏幕方向改变,以下是我写的一个样例。

xml页面文件:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity"
>

<Button

android:id="@+id/btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:text="改动屏幕方向"
/>

</RelativeLayout>

页面java文件:

package com.example.chcfg;

import android.os.Bundle;

import android.app.Activity;

import android.content.pm.ActivityInfo;

import android.content.res.Configuration;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class MainActivity
extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button btn = (Button)findViewById(R.id.btn);

btn.setOnClickListener(new OnClickListener()

{

public
void onClick(View source) {

//
TODO Auto-generated method stub

Configuration config = getResources().getConfiguration();

if(config.orientation == Configuration.ORIENTATION_LANDSCAPE)

{

//设置为竖屏

MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

//假设当前是竖屏

if(config.orientation == Configuration.ORIENTATION_PORTRAIT)

{

MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

}

});

}

@Override

public void onConfigurationChanged(Configuration newConfig) {

//
TODO Auto-generated method stub

super.onConfigurationChanged(newConfig);

String screen = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE ?
"横向屏幕" : "纵向屏幕";

Toast.makeText(this,
"系统屏幕方向发生改变\n改动后的方向为:" + screen , Toast.LENGTH_LONG).show();

}

}

MainFest xml文件:

<?xml
version="1.0"
encoding="utf-8"?

>

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.chcfg"

android:versionCode="1"

android:versionName="1.0"
>

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="18"
/>

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

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme"
>

<activity

android:name="com.example.chcfg.MainActivity"

android:label="@string/app_name"

android:configChanges="orientation">

<intent-filter>

<action
android:name="android.intent.action.MAIN"
/>

<category
android:name="android.intent.category.LAUNCHER"
/>

</intent-filter>

</activity>

</application>

</manifest>

个人辛勤劳动成果,如有转载。请注明出处。谢谢。

时间: 2024-10-12 03:32:57

Android开发之改动屏幕方向的相关文章

Android开发之修改屏幕方向

途牛网 5 月 9 日挂牌 5 月 9 日消息,据美国财经网站 iposcoop 网站报道,途牛旅游网将于今晚(5 月 9 日)在纳斯达克正式挂牌上市. 途牛网 4 月 4 日首次提交 IPO 招股书,最新版招股书显示,途牛网计划在纳斯达克上市,股票交易代码为"TOUR",发行价区间为每股美国存托股(ADS)9 美元至 11 美元,发行量最高 920 万股 ADS,最高融资额为 1.012 亿美元,销商为摩根士丹利国际.瑞信证券和华兴资本证券.OPPENHEIMER. 进入微软.亚马逊

android开发2048时候屏幕过度敏感

============问题描述============ android开发2048时候屏幕过度敏感,在屏幕滑动的时候手势敏感,轻轻滑动一次就会移动好几次触发,在里面加入 thread.wait(1000)也没有用,只是时间延长了 ============解决方案1============ 常见的处理有 1. ACTION_DOWN 的时候记录按下的坐标,并标记正在"处理中". 2. ACTION_MOVE 的时候,如果正在"处理中",则与之前按下的坐标比较,看移动

Android开发系列之屏幕密度和单位转换

由于Android的开源性,所以目前市面上面Android手机的分辨率特别多,这样的话就给我适配带来了一定的难度.要想做好适配,我们首先应该明白什么是分辨率.PPI.屏幕大小等概念,还有在不同的屏幕密度下,各个单位之间的转换关系. 屏幕大小指屏幕对角线的长度,通常使用"寸"来度量. 分辨率是指手机屏幕的像素点个数,例如720X1280就是指屏幕的宽有720个像素点,而高有1280个像素点. DPI每英寸像素,它是由对角线的像素点数除以屏幕的大小得到的.所以屏幕的密度对应关系为:,正是由

Android开发之调节屏幕亮度

在播放器中,我们常常可以看到这么一个设计,就是用户通过在屏幕的某个部分上下滑动就可以调节屏幕的亮度,在某个部分上下滑动就可以调节播放的音量.而左右滑动就可以调节播放的进度. 今天,我要说一下亮度的调节.其实主要是通过设置View的属性实现的. public void onLightChange(float delta, int distance, Window window) { WindowManager.LayoutParams params = window.getAttributes()

Android开发之获取屏幕相关属性

几乎每个app都会用到屏幕相关的属性,所以我在这将常用的属性封装成了工具类 首先新建一个工具类(ScreenUtils) 1.获取屏幕宽高: public static DisplayMetrics getScreenSize(Context context){ DisplayMetrics metrics = new DisplayMetrics(); WindowManager wm = (WindowManager)context .getSystemService(Context.WIN

Android 开发中的屏幕适配技术详解

Android 强制获取屏幕方向

最近在做照相机功能,简单的封装系统相机,遇到一个问题就是无法获取屏幕的当前方向导致屏幕旋转之后无法获得正确的方向,所以照片方向不对. 在网上查了一下都是通过windowManager的Display或Configuration的getOrientation方法获取当前屏幕方向.但是问题来了,两种方法要求Activity不能固定方向,且需要系统打开自动旋转才能获取正确的值,否则会返回一个固定值. 搜来搜去也就只有这两种答案,我考虑只能用监听方向传感器来实现了,但是android orientati

Android自适应屏幕方向、大小和分辨率,及字体设置

屏幕大小 1.不同的layout Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在 res目录下创建不同的layout文件夹,比如:layout-640x360,layout-800x480,所有的layout文件在编译之后都会 写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用. 2.hdpi.mdpi.ldpi 之前的版本中,只有一个drawable,而2.1版本中有dra

Google I/O 2014 大会总结 Android开发新方向

昨天晚上,Google I/O 2014大会召开,会上主要展示了以下几个部分的创新内容: Android L 操作系统 首先是界面,谷歌重新设计了一套 UI 规范,并称之为"Material Design",这种语言风格从一些人们常用的物品中汲取灵感,比如纸张和墨水的晕染,让屏幕空间得到最佳应用,提供尽量多的资讯信息,并且可以在智能手机.平板或桌面上提供统一的设计界面. 具体风格上看,Material Design 大量使用了圆形和圆角的扁平化设计,更多的操作是通过滑动完成而不是点击.