Android 手势小试牛刀
进入程序后的初始页面
添加一个手势之后的情况 :
gesture_list.xml中定义两个button
style=“@android:style/ButtonBar”//定义buttonbar的组件类型
android:layout_width=“match_parent”//宽度与父类一致
android:layout_height=“wrap_content”//高度能包住内容即可
android:orientation=“horizontal”>//走向为水平
<Button
android:id=“@+id/addButton“//新建addbutton的id,方便调用
android:onClick="addGesture"
android:layout_width=“0dip“//dip是一种单位,是怎么样的长度不是很清楚
android:layout_height="wrap_content"
android:layout_weight="1"
</LinearLayout>
android:enabled="false"
android:text=“@string/button_add” />//Button上书写的内容
<Button
android:id="@+id/reloadButton"
android:onClick="reloadGestures"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"
android:text="@string/button_reload" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1.0" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1.0"
android:gravity=“center“ //本元素所有子元素的重力方向
android:text="@string/gestures_loading"
android:textAppearance=“?android:attr/textAppearanceMedium” /> //appearance为属性中定义的textAppearanceMedium
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//重写父类内容
setContentView(R.layout.gestures_list);//将gesture_list.xml对应的布局载入
mAdapter = new GesturesAdapter(this);//新建配适器对象
setListAdapter(mAdapter);//将配适器中所封装的内容用list形式表示出来
adapter的作用就是将要在列表内显示的数据和列表本身结合起来。列表本身只完成显示的作用,其实他就是继承自VIEWGROUP 类。但是他又有一个独特的函数就是setAdapter()就是完成了view和adapter的结合。adapter如同其本身含义,其实就是一个适配器,他可以对要显示的数据进行统一的封装,主要是将数据变成view提供给list。
public void reloadGestures(View v) {
Intent intent = new Intent(this, GestureShowActivity.class);
startActivity(intent);
}
public void addGesture(View v) {
Intent intent = new Intent(this, CreateGestureActivity.class);
startActivityForResult(intent, REQUEST_NEW_GESTURE);
}
注:后面关于页面之间的跳转都将用到intent
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView android:id=“@+id/appicon” //显示应用程序的图标
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin=“5px”/> //px是像素的意思
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:id="@+id/appname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFFFF"
android:textSize="22px" />
<TextView android:id="@+id/pname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFFFF"
android:textSize="13px" />
</LinearLayout>
</LinearLayout>
ApplicationSelecte中获取手机中已安装的程序并点选之后取得程序的基本信息
private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {
List<PackageInfo> packs = getPackageManager().getInstalledPackages();
for(int i=0;i<packs.size();i++) {
PackageInfo p = packs.get(i);
if ((!getSysPackages) && (p.versionName == null)) {
continue ; //使用arraylist方式通过getPackageManager().getInstalledPackages()来获得已经安装的程序
}
PInfo newInfo = new PInfo();
newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
newInfo.pname = p.packageName;
newInfo.appicon = p.applicationInfo.loadIcon(getPackageManager());
res.add(newInfo); // 获得程序名,包名,应用程序的图标
}
return res;
}
GestureOverlayView overlay = (GestureOverlayView) findViewById(R.id.gestures_overlay); //GestureOverlayView能在所在界面的最外层划出手势
overlay.addOnGestureListener(new GesturesProcessor());//设置监听器,能够记录划出手势的点和经过的路径,并保存
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
ArrayList predictions = mLibrary.recognize(gesture); // 使用了recognize的方法
// We want at least one prediction
if (predictions.size() > 0) { //必须得有划动
Prediction prediction = (Prediction) predictions.get(0);
// We want at least some confidence in the result
if (prediction.score > 1.0) { //有一定的相似程度
// Open the application
String packageName = prediction.name;
try{
Intent mIntent = getPackageManager() .getLaunchIntentForPackage(packageName) ;
startActivity(mIntent); // 通过getPackageManagerd中getLaunchIntentForPacksge的方法打开相对应的应用程序
}
catch(Exception e){
Toast.makeText (this,"查无此程序",Toast.LENGTH_SHORT).show();
} //不存在的话抛出异常
}
注:本文参加
“第二届 Google 暑期大学生博客分享大赛 - 2011 Android 成长篇 ”
转载于:https://www.cnblogs.com/justforfun/archive/2011/08/12/2135647.html
Android 手势小试牛刀相关推荐
- Android手势锁实现
最终效果如下 整体思路 a.自定义了一个RelativeLayout(GestureLockViewGroup)在里面会根据传入的每行的个数,生成多个GestureLockView(就是上面一个个小圈 ...
- Android 系统(74)---Android手势触摸事件的分发和消费机制
Android手势&触摸事件的分发和消费机制 在Android 客户端开发过程中,经常会遇到手势事件的处理,本篇博文讲一下本人对touch事件处理机制的一些理解,希望对一些初级开发者有所帮助. ...
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图 ...
- android手势_Android手势检测器
android手势 In this tutorial, we'll be discussing and implementing Gestures in our Android Application ...
- android手势_您可能不知道的七个Android手势
android手势 Gestures make using your phone faster and more efficient-but only if you know the gestures ...
- Android手势密码探索
Android 智能手机在全球市场有着极高的市场占有率,越来越受到广大消费者的青睐.但 Android 作为开源操作系统,且很容易可以获得系统 root 权限,Android 系统的安全问题也是用户和 ...
- android手势密码源码,Android自定义UI手势密码改进版源码下载
在之前文章的铺垫下,再为大家分享一篇:Android手势密码,附源码下载,不要错过. 先看第一张图片的布局文件 activity_main.xml xmlns:tools="http://s ...
- Android手势密码view笔记(一)
前言:不知不觉已经在这座陌生又熟悉的城市呆了一年多了,说不出什么感觉,可是即使是自己感觉自己没什么变化,但是周围的事物却不断的在变,不知道自己选择的路未来如何,但是当下我还是会努力.努力.再努力的,加 ...
- android 手势放缩_Android应用中实现手势控制图片缩放的完全攻略
一.概述现在app中,图片预览功能肯定是少不了的,用户基本已经形成条件反射,看到小图,点击看大图,看到大图两个手指开始进行放大,放大后,开始移动到指定部位~~~ 我相信看图的整个步骤,大家或者说用户应 ...
最新文章
- git ssh创建分支_Git(2):在gitlab中创建开发用户,以及master分支的安全管理
- 桌面虚拟化之呼叫中心语音应用
- 智能车竞赛技术报告 | 智能车视觉 - 中国计量大学 - 赛博-10
- SOA也是一种设计模式
- 【渝粤教育】国家开放大学2018年春季 0269-21T文学概论 参考试题
- Apache SolrCloud安装
- Android事件总线(四)源码解析otto
- HDFS 上传文件的不平衡,Balancer问题是过慢
- 聊聊浏览器(webkit)资源加载机制
- 拓端tecdat|R语言公交地铁路线进出站数据挖掘网络图可视化
- java cp classpath_java -cp、java -jar、java -classpath
- Eclipse 2021-09最新版安装图文教程(详细包会)
- FMS直播,在PC和手机PAD同时接收直播(使用RTMP和HLS协议)
- Nagios下载安装配置
- python多线程模块threading学习笔记(5)之锁Lock
- 漫画人物头像总是画不好?快看看这些注意点你有没有中招!
- BUUCTF:[INSHack2018]Self Congratulation
- matlab能画五维吗,进化算法之粒子群算法和Matlab实现(多维)
- idea软件调整字体大小和行间距
- 魅族手机便签的备忘录内容误删了怎么办?