当前位置: 编程技术>移动开发
本页文章导读:
▪LinearLayout按上(pressed)或获取焦点(focused)时背景设置不同颜色或图片 LinearLayout按下(pressed)或获取焦点(focused)时背景设置不同颜色或图片
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myview"
.........
▪ 运用Intent打开一个Dial界面 使用Intent打开一个Dial界面
1.新建项目:2.打开main.xml删除TextView控件 如:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vert.........
▪ JetBoy游戏深入解析JetPlayer种解析 JetBoy游戏深入解析JetPlayer类解析
在学习之前,我们先简要解析几个概念,总结如下:JET :一个在嵌入式设备上的音乐播放器(JET is an interactive music player for small embedded devices, including the those r.........
[1]LinearLayout按上(pressed)或获取焦点(focused)时背景设置不同颜色或图片
来源: 互联网 发布时间: 2014-02-18
LinearLayout按下(pressed)或获取焦点(focused)时背景设置不同颜色或图片
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myview" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="top" android:background="@drawable/myDrawable" android:clickable="true" > </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@color/black" /> <!-- focused --> <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/black" /> <!-- focused and pressed--> <item android:state_pressed="true" android:drawable="@color/green" /> <!-- pressed --> <item android:drawable="@color/black" /> <!-- default --> </selector>
千万注意上面红色标注的地方,一定要加这个属性,不然不起作用,另外在color.xml中可以定义drawable和color等多种属性,害我老是报找不到@color匹配的项,原来一直都在写drawable,尼玛!!!!!
1 楼
niuniulife2011
2011-06-28
<div >dengzh 写道</div>
<div >
<pre name="code" ><?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myview"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:background="@drawable/myDrawable"
<span ><span >android:clickable="true"</span>
</span>
>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/black" /> <!-- focused -->
<item android:state_focused="true" android:state_pressed="true" android:drawable="@color/black" /> <!-- focused and pressed-->
<item android:state_pressed="true" android:drawable="@color/green" /> <!-- pressed -->
<item android:drawable="@color/black" /> <!-- default -->
</selector></pre>
<p> 千万注意上面红色标注的地方,一定要加这个属性,不然不起作用,另外在color.xml中可以定义drawable和color等多种属性,害我老是报找不到@color匹配的项,原来一直都在写drawable,尼玛!!!!!</p>
</div>
<p> </p>
<div >
<pre name="code" ><?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myview"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:background="@drawable/myDrawable"
<span ><span >android:clickable="true"</span>
</span>
>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/black" /> <!-- focused -->
<item android:state_focused="true" android:state_pressed="true" android:drawable="@color/black" /> <!-- focused and pressed-->
<item android:state_pressed="true" android:drawable="@color/green" /> <!-- pressed -->
<item android:drawable="@color/black" /> <!-- default -->
</selector></pre>
<p> 千万注意上面红色标注的地方,一定要加这个属性,不然不起作用,另外在color.xml中可以定义drawable和color等多种属性,害我老是报找不到@color匹配的项,原来一直都在写drawable,尼玛!!!!!</p>
</div>
<p> </p>
[2] 运用Intent打开一个Dial界面
来源: 互联网 发布时间: 2014-02-18
使用Intent打开一个Dial界面
1.新建项目:
2.打开main.xml删除TextView控件
如:
3.编辑AndroidPhoneDialer.java
1.新建项目:
2.打开main.xml删除TextView控件
如:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > </LinearLayout>
3.编辑AndroidPhoneDialer.java
package android_programmer_guide.androidphonedialer; import android.app.Activity; import android.os.Bundle; import android.content.Intent; import android.net.Uri; public class AndroidPhoneDialer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent DialIntent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:13632783420")); // DialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); DialIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(DialIntent); } }
[3] JetBoy游戏深入解析JetPlayer种解析
来源: 互联网 发布时间: 2014-02-18
JetBoy游戏深入解析JetPlayer类解析
在学习之前,我们先简要解析几个概念,总结如下:
JET :一个在嵌入式设备上的音乐播放器(JET is an interactive music player for small embedded devices, including the those running the Android platform)
JET engine :一个控制游戏声音特效的引擎,其使用MIDI格式,并可以控制游戏的时间进度(一个精确的时钟是一个游戏必不可少)。
说到这里让我想起来,在学习DirectShow的时候,发现DirectShow也是通过声卡上的时间,来进行音/视频同步,毕竟硬件设备的时钟精确度比较高。JetPlayer则是Android SDK中提供的控制JET engine的类。
关于MIDI(Musical Instrument Digital Interface:乐器数码接口)我们简要说明下:
MIDI是用于在音乐合成器 (music synthesizers)、乐器 (musical instruments)和计算机之间交换音乐信息的一种标准协议;
MIDI不是声音信号,在MIDI电缆上传递的不是声音,而是发送给MIDI设备或其它装置让它产生声音或执行某个动作的指令;
MIDI主要有以下优点:生成的文件比较小,因为MIDI存储的是命令,而不是声音波形;容易编辑命令比编辑声音波形要容易的多;可以作为背景音乐,因为MIDI音乐可以和其他的媒体,比如数字电视、图形、动画等一起播放,这样可以加强演示效果;
每个物理MIDI通道(MIDI channel)分成16个逻辑通道,每个逻辑通道可以指定一种乐器,在MIDI信息中,用4个二进制位来表示这16个逻辑通道;
MIDI数据是一套音乐符号的定义,而不是实际的音乐,所以MIDI文件的内容被称为MIDI消息(MIDI message/MIDI event)。一个MIDI消息由1个8位的状态字节并通常跟着2个数字字节组成。在状态字节中,最高有效位设置为“1”,低4位用来表示这个MIDI消息是属于那个通道的,其余3位的设置表示这个MIDI消息是什么类型(通道消息-channel message,系统消息-system
有了以上的基础知识,我们再来看Android SDK中的SONiVOX JETCreator User Manual 这篇文章中的一些说明就简单多了,部分摘要如下:
从上面的说明中我们可以发现,*.jet文件包含多个Segment,而每个SegMent又包含多个Track,一个Track是MIDI Event的序列。MIDI Event的结构在前面已经详细说明了,下面我们就开始进入本篇幅的主题。
首先,通过JetCreator authoring tool 来创建一个*.jet 文件
JetCreator authoring tool是使用Python编写的,在安装前需要安装Python and WXWidgets,安装好这更工具后,就可以使用这个工具来制作*.jet文件,这部分的详细说明,大家可以到Android SDK中Audio Video部分的文档去仔细阅读吧。有了*.jet文件,我们就可以通过JetPlayer来播放器中的声音效果,比如JetBoy游戏中的激光的声音。
然后,解析JetPlayer.OnJetEventListener 接口
结合我们前面的介绍,这几个接口函数是不是看起来就明白多了,唯一需要说的参数userID,这个参数是个标记,在程序中可以自己设置。
最后,解析JetPlayer 类
JetPlayer 是个单体类(a singleton class.),使用Static函数getJetPlayer(),就可以获取得到这个实例。JetPlayer类内部有个存放segment的队列,JetPlayer类的主要作用就是向队列中添加segment或者清空队列,其次就是控制segment的track是否处于打开状态。
至于如何使用是比较简单的,主要还是*.jet文件的制作上,以后有机会再为大家慢慢介绍如何制作*.jet文件,下一篇幅我们将介绍核心代码分析。
在学习之前,我们先简要解析几个概念,总结如下:
JET :一个在嵌入式设备上的音乐播放器(JET is an interactive music player for small embedded devices, including the those running the Android platform)
JET engine :一个控制游戏声音特效的引擎,其使用MIDI格式,并可以控制游戏的时间进度(一个精确的时钟是一个游戏必不可少)。
说到这里让我想起来,在学习DirectShow的时候,发现DirectShow也是通过声卡上的时间,来进行音/视频同步,毕竟硬件设备的时钟精确度比较高。JetPlayer则是Android SDK中提供的控制JET engine的类。
关于MIDI(Musical Instrument Digital Interface:乐器数码接口)我们简要说明下:
MIDI是用于在音乐合成器 (music synthesizers)、乐器 (musical instruments)和计算机之间交换音乐信息的一种标准协议;
MIDI不是声音信号,在MIDI电缆上传递的不是声音,而是发送给MIDI设备或其它装置让它产生声音或执行某个动作的指令;
MIDI主要有以下优点:生成的文件比较小,因为MIDI存储的是命令,而不是声音波形;容易编辑命令比编辑声音波形要容易的多;可以作为背景音乐,因为MIDI音乐可以和其他的媒体,比如数字电视、图形、动画等一起播放,这样可以加强演示效果;
每个物理MIDI通道(MIDI channel)分成16个逻辑通道,每个逻辑通道可以指定一种乐器,在MIDI信息中,用4个二进制位来表示这16个逻辑通道;
MIDI数据是一套音乐符号的定义,而不是实际的音乐,所以MIDI文件的内容被称为MIDI消息(MIDI message/MIDI event)。一个MIDI消息由1个8位的状态字节并通常跟着2个数字字节组成。在状态字节中,最高有效位设置为“1”,低4位用来表示这个MIDI消息是属于那个通道的,其余3位的设置表示这个MIDI消息是什么类型(通道消息-channel message,系统消息-system
有了以上的基础知识,我们再来看Android SDK中的SONiVOX JETCreator User Manual 这篇文章中的一些说明就简单多了,部分摘要如下:
从上面的说明中我们可以发现,*.jet文件包含多个Segment,而每个SegMent又包含多个Track,一个Track是MIDI Event的序列。MIDI Event的结构在前面已经详细说明了,下面我们就开始进入本篇幅的主题。
首先,通过JetCreator authoring tool 来创建一个*.jet 文件
JetCreator authoring tool是使用Python编写的,在安装前需要安装Python and WXWidgets,安装好这更工具后,就可以使用这个工具来制作*.jet文件,这部分的详细说明,大家可以到Android SDK中Audio Video部分的文档去仔细阅读吧。有了*.jet文件,我们就可以通过JetPlayer来播放器中的声音效果,比如JetBoy游戏中的激光的声音。
然后,解析JetPlayer.OnJetEventListener 接口
结合我们前面的介绍,这几个接口函数是不是看起来就明白多了,唯一需要说的参数userID,这个参数是个标记,在程序中可以自己设置。
最后,解析JetPlayer 类
JetPlayer 是个单体类(a singleton class.),使用Static函数getJetPlayer(),就可以获取得到这个实例。JetPlayer类内部有个存放segment的队列,JetPlayer类的主要作用就是向队列中添加segment或者清空队列,其次就是控制segment的track是否处于打开状态。
至于如何使用是比较简单的,主要还是*.jet文件的制作上,以后有机会再为大家慢慢介绍如何制作*.jet文件,下一篇幅我们将介绍核心代码分析。
最新技术文章: