当前位置:  编程技术>移动开发
本页文章导读:
    ▪统制横竖屏切换        控制横竖屏切换 在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。 在AndroidManifest.xml的activity(需要禁止转向.........
    ▪ OpenGL 基础 之 惯用名词翻译        OpenGL 基础 之 常用名词翻译  texture 纹理 vertex  顶点 rect 块 angle 角度 altitude 高度 triangle 三角 scale 缩放 hardness 硬度 turbulence 动荡,偏移 hsb 色相/饱和度/亮度 tessellation 镶嵌 raster 光栅 ortho .........
    ▪ ListView 初始       ListView 初步 ListView中最主要的是adapter的设置问题,这里简单写了两个Adapter。 第一种ArrayAdapter:   private static String[] data1={"a","b","c","d"}; private List data2=null; @Override public void onCreate(Bund.........

[1]统制横竖屏切换
    来源: 互联网  发布时间: 2014-02-18
控制横竖屏切换

在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。

在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。例如:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.boyaa.texas.app.activity" android:versionCode="1"
 android:versionName="1.0">
 <application android:icon="@drawable/icon" android:label="@string/app_name"
  android:debuggable="true">
  <activity android:name=".GameActivity" android:label="@string/app_name"
   android:screenOrientation="landscape" android:windowSoftInputMode="stateVisible|adjustPan"
   android:configChanges="orientation|keyboardHidden">
   <!--
    android:windowSoftInputMode就是用来避免输入法面板遮挡问题的;android:configChanges:当横竖屏切换时不会重新加载界面
   -->
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
  <activity android:name="com.boyaa.texas.app.activity.GameRoomActivity" android:screenOrientation="landscape" android:windowSoftInputMode="stateVisible|adjustPan"
   android:configChanges="orientation|keyboardHidden"/>
 </application>

<uses-sdk android:minSdkVersion="4" />
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
</manifest>


另外,android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!

要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向(给每个activity加上android:configChanges=”keyboardHidden|orientation”属性),并根据Activity的重写onConfigurationChanged(Configuration newConfig)方法来控制,这样在转屏时就不会重启activity了,而是会去调用onConfigurationChanged(Configuration newConfig)这个钩子方法。例如:

  • if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){   
  •   //横向    
  •   setContentView(R.layout.file_list_landscape);    
  • }else{   
  •   //竖向    
  •    setContentView(R.layout.file_list);    
  • }  

  •     
    [2] OpenGL 基础 之 惯用名词翻译
        来源: 互联网  发布时间: 2014-02-18
    OpenGL 基础 之 常用名词翻译

     texture 纹理

    vertex  顶点

    rect 块

    angle 角度

    altitude 高度

    triangle 三角

    scale 缩放

    hardness 硬度

    turbulence 动荡,偏移

    hsb 色相/饱和度/亮度

    tessellation 镶嵌

    raster 光栅

    ortho 正交,即坐标原点

    blend 混色

    mask 蒙板

    depth 深度(一般用于颜色深度,色深的位数越高,屏幕上所能显示的颜色数就越多,显示的图像质量就越好)

    viewport 视口

    glFrustum 视口 规定视图的大小和深度的起点重点

    glLoadIdentity场景透视图

    dither 一般是滤色

    mono单一的

    smooth-shading 平滑着色

    xxxFunc() //表示xxx的毁掉函数

     GL_COLOR_BUFFER_BIT //颜色缓冲区

    GL_DEPTH_BUFFER_BIT //深度缓冲区

    GL_ACCUM_BUFFER_BIT //累计缓冲区

    GL_STENCIL_BUFFER_BIT //模版缓冲区

    glClearColor(0,0,0,0); rgba   //设置清空颜色为黑色

    glClearDepth(1.0); //指定深度缓冲区每个像素的值为1.0

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) //以黑色清空颜色缓存区,并且清空深度缓存区所有像素为1.0;

    glOrtho(0,0,0,0,0,0) //设定坐标原点

    glVertex(0,0,0) //顶点坐标xyz

    glColor4f(r,g,b,a) //设定颜色为rgba

    //这里以六点为例 abcdef ,并且均以逆时针方式画出来的,而非乱序

    glBegin(GL_POLYGON)

    GL_POINTS //表示要画的点是纯点坐标

    GL_LINES // 表示要画的点是线,两个顶点确定一条线 a-b c-d e-f

    GL_LINE_STRIP // 表示画的点是线,并且从头连到尾  a-b-c-d-e-f

    GL_LINE_LOOP  // 表示画的点是线, 回环 a-b-c-d-e-f-a

    GL_TRIANGLES // 画的点是在画三角 三个点确定一个三角

    GL_TRIANGLE_STRIP // 画的点是在画三角 是一个连接串 abc bcd cde def

    GL_TRIANGLE_FAN //画的点是在画三角 只是以第一个为核心点画, abc acd ade aef

    GL_QUADS // 画的点是在画四边形 4个顶点确定一个四边形

    GL_QUAD_STRIP // 画的点是在画四边形 是一个连接串 abcd cefd

    GL_POLYGON // 画凸多边形

    按照规定,按照逆时针画出来的多边形称为‘正面’ ,顺时针为‘反面’

    glEnd();

    glNormal() 设置法线向量  法线长度 等于 x^2+y^2+z^2 之和开方

     projection matrix(投影矩阵)

    glLoadIdentity()近似于重置。它将所选的矩阵状态恢复成其原始状态。调用 glLoadIdentity()之后我们为场景设置透视图。

    glMatrixMode(GL_MODELVIEW)指明任何新的变换将会影响 modelview matrix(模型观察矩阵)。模型观察矩阵中存放了我们的物体讯息。最后我们重置模型观察矩阵。

    glViewport(0, 0, width, height);					// 重置当前的视口


        
    [3] ListView 初始
        来源: 互联网  发布时间: 2014-02-18
    ListView 初步

    ListView中最主要的是adapter的设置问题,这里简单写了两个Adapter。

    第一种ArrayAdapter:



     

    private static String[] data1={"a","b","c","d"};
    	private  List data2=null;
    	
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            ListView listview=new ListView(this);
            ArrayAdapter adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,data);
         setContentView(listview);

    其中样式 每条数据样式可自己定义,或使用系统自带的样式,如android.R.layout.simple_list_item_1。

    如一行有多条数据,采用第二种SimpleAdapter:

    先将数据放到 ArrayList<Map<String,Object>>中去,每条记录都是一个Map映射列表。



     

    data2=new ArrayList<Map<String,Object>>();
    		Map<String, Object> item;
    		item=new HashMap<String,Object>();
    		item.put("姓名","张三");
    		item.put("性别","男");
    		data2.add(item);
    		item=new HashMap<String,Object>();
    		item.put("姓名","李四");
    		item.put("性别","男");
    		data2.add(item);
    		item=new HashMap<String,Object>();
    		item.put("姓名","小王");
    		item.put("性别","女");
    		data2.add(item);
    SimpleAdapter adapter=new SimpleAdapter(this, data2, R.layout.listitem, new String[]{"姓名", "性别"},new int[]{R.id.mview1,R.id.mview2});
            listview.setAdapter(adapter);
            setContentView(listview);

     SimpleAdapter的构造函数最后两个参数,一个是String数组,里面每个字符串用于访问得到Map对象中的值。item.get("姓名");最后一个参数数组里的值为xml中两个TextView的ID。

    其中list选项的样式可自己定义

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:layout_width="fill_parent" android:layout_height="fill_parent">
    	<TextView android:id="@+id/mview1" android:layout_width="wrap_content"
    		android:layout_height="wrap_content" android:width="300dp">
    	</TextView>
    	<TextView android:id="@+id/mview2" android:layout_width="wrap_content"
    		android:layout_height="wrap_content">
    	</TextView>
    </LinearLayout>
    

     


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    编程技术 iis7站长之家
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3