常用的接口:
final int getAction () // 获得按键的动作
final int getFlags () //获得标志
final int getKeyCode () // 获得按键码
final int getRepeatCount () // 获得重复的信息
final int getScanCode () // 获得扫描码
通过keyEvent接口可以获得按键的相关信息
java主程序:
package com.shine.night;
import android.app.Activity;
import android.content.ContentProvider;
import android.graphics.*;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.ImageView;
public class MainActivity extends Activity
{
private ImageView image;
private TextView text;
private int alph_value;
protected void onCreate ( Bundle b )
{
super.onCreate ( b );
setContentView ( R.layout.main );
image = ( ImageView ) findViewById ( R.id.image );
text = ( TextView ) findViewById ( R.id.text );
alph_value = 100;
image.setAlpha ( alph_value );
text.setText ( "Alpha = " + alph_value *100/0xff + "%" );
}
public boolean onKeyDown ( int keyCode , KeyEvent msg )
{
switch ( keyCode )
{
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_DPAD_RIGHT:
alph_value += 20;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_DPAD_LEFT:
alph_value -= 20;
default:
break;
}
if ( alph_value >=0xFF ) alph_value = 0xFF;
if ( alph_value <= 0x0 ) alph_value = 0x0;
image.setAlpha ( alph_value );
text.setText ( "Alpha = " + alph_value *100/0xff + "%" );
return super.onKeyDown ( keyCode , msg );
}
}
xml布局文件:
<pre name="code" class="html"><?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"
>
<TextView
android:id="@+id/text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
/>
<ImageView android:id="@+id/image"
android:src="@drawable/ic_launcher"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>