Android高级控件(下)
Chronometer计时器
常用的方法
getBase() 基准时间
setFormat 设置显示格式
start() 开始计时
stop() 停止计时
setOnChronometerListener 计时改变的监听事件
<uses-permission android:name="android.permission.VIBRATE"></uses-permission> 获取震权限
<!--xml代码-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Chronometer
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/cm"
android:text="计时器"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/bt1"
android:text="开始计时"></Button>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/bt2"
android:text="结束计时"></Button>
</LinearLayout>
</LinearLayout>
public class cm extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1=(Button)findViewById(R.id.bt1);
Button btn2=(Button)findViewById(R.id.bt2);
final Chronometer cm=(Chronometer)findViewById(R.id.cm);
final Vibrator vb=(Vibrator) getApplication()
.getSystemService(Service.VIBRATOR_SERVICE);//获得震动服务
btn1.setOnClickListener(new OnClickListener() { public void onClick(View v) {
cm.start();//开始计时
vb.vibrate(new long[]{1000,1000,1000,2000}, 0);//震动频率
}
});
btn2.setOnClickListener(new OnClickListener() { public void onClick(View v) {
cm.stop();//结束计时
cm.setBase(SystemClock.elapsedRealtime());//复位
vb.cancel();//关闭震动
}
});
}
}
TabHost布局
TabActivity类常用方法
getTabHost() 获取对象
Layoutinflater类常用方法
inflate(布局管理器ID,组件容器、组件参数,True)
LayoutInflater from() 从指定容器之中获得LayoutInflater对象
TabHost.TabSpec
setindicator() 设置一个Tab
setContent 设置要显示的组件ID
public class TH extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
TabHost thHost=getTabHost();//创建Tabhost对象
LayoutInflater.from(this).inflate(R.layout.tb, thHost.getTabContentView()
,true); TabSpec s1=thHost.newTabSpec("tab1")//设置标签的ID
.setContent(R.id.TextView01)//设置标签的显示内容
.setIndicator("第一页");//设置标签的标题
thHost.addTab(s1); TabSpec s2=thHost.newTabSpec("tab2")
.setContent(R.id.TextView02)
.setIndicator("第二页");
thHost.addTab(s2); TabSpec s3=thHost.newTabSpec("tab3")
.setContent(R.id.TextView03)
.setIndicator("第三页");
thHost.addTab(s3);
}
}
菜单
Menu 父类接口,用于创建主菜单
SubtextMenu 继承Menu接口,用于创建子菜单
ContextMenu 接口继承Menu接口,用户创建上下文菜单
MenuItem 接口用户创建菜单项
onCreateOptionsMenu(Menu menu); 在此方法中设置多个菜单项(返回true表示显示菜单,反之不显示)
onOptionsItemSelected(MenuItem item); 判断菜单项的操作
onOptionsMenuClosed(Menu menu); 当菜单关闭时触发
onPrepareOptionsMenu(Menu menu) 在菜单显示前触发此操作(返回true继续调用oncreateOptionsMenu()方法,反之则不调用)
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE, 0, 1, "保存");
menu.add(Menu.NONE, 1, 0, "删除");
SubMenu h=menu.addSubMenu(Menu.NONE, 2, 0, "帮助");
h.add("保存帮助");
h.add("删除帮助");
return super.onCreateOptionsMenu(menu); }
Gallery控件
Gallery 创建Gellery对象
setSpacing android:spacing 设置两个图片的显示间距
setAdapter 设置图片集
setGravity android:gravity 设置图片的对其方式
public class Galy extends Activity { protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.galy);
final ImageView iView=(ImageView)findViewById(R.id.ImageView01);
Gallery gallery=(Gallery)findViewById(R.id.Gallery01);
final int [] imgid={R.drawable.ps,R.drawable.ie,R.drawable.kg};
List<Map<String, Integer>> list=new ArrayList<Map<String,Integer>>();
for (int i = 0; i < imgid.length; i++) {
Map<String,Integer> map=new HashMap<String,Integer>();
map.put("img",imgid[i]);
list.add(map);
}
SimpleAdapter adapter=new SimpleAdapter
(this,list,R.layout.galy,new String[]{"img"},new int[]{R.id.ImageView01});
gallery.setAdapter(adapter);
gallery.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
iView.setImageResource(imgid[arg2]); }
});
}
}
Android高级控件(下)的更多相关文章
- Android高级控件(下)
计时器(Chronometer) getBase() 基准时间 setFormat() 设置显示格式 start() 开始计时 stop() 停止计时 setOnChronometerListener ...
- Android 高级控件(七)——RecyclerView的方方面面
Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...
- Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...
- Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现
Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...
- Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例
Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 现在的二维码可谓是烂大街了,到处都是二维码,什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 如今的二维码可谓是烂大街了.到处都是二维码.什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,添加和删除等功能 这个控件还是挺复杂的.也是项目中应该算是比較经常使用的了,所以写了一个小Demo来讲讲,主要是自己定义a ...
随机推荐
- Java基础方面
1.作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package ...
- GitHub万星的ML算法面试大全
项目地址:https://github.com/imhuay/Algorithm_Interview_Notes-Chinese 如下所示为整个项目的结构,其中从机器学习到数学主要提供的是笔记与面试知 ...
- string类和stringBuilder类
字符串是C#中的一种重要数据类型,在项目开发中,离不开字符串操作.C#提供了string类实现字符串操作.于Convert类相似,string类中方法有静态方法和非静态方法.注意,在C#中String ...
- tomcat7.0安装笔记
1. 解压,新增系统环境变量CATALINA_HOME,值为tomcat所在目录,如E: tomcat7.0 PS:安装JAVA时没有配置系统变量JAVA_HOME,导致报错无法启动tomcat,新建 ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- uva-10487-枚举
题意:给你一个集合,每俩个数相加得到一个和s,输入s1,问离s1最近的s是多少 二分,注意如果二分出相等,那一定是最近的数,要不然就比较最后mid和mid-1的数 #include <strin ...
- 34.纯 CSS 创作在文本前后穿梭的边框
原文地址: https://segmentfault.com/a/1190000015045700 感想: 动画 + z-index:n ; HTML code: <div class= ...
- 20.纯 CSS 为母亲节创作一颗像素画风格的爱心
原文地址:https://segmentfault.com/a/1190000014837536 感想: 网格grid 又来了: fr : (剩余空间长度)单位, 1.当(50px,nfr),nfr代 ...
- 微信支付开发出现redirect_uri参数错误的解决方法
我们在进行微信支付开发的时候会遇到出现“redirect_uri参数错误”这种情况,怎么办呢?下面就是我总结出现这种“redirect_uri参数错误”的七种可能情况,以及解决方式. 1.可能原因①: ...
- ORM对单表的增删改查
表记录的增加: 1)b = Book(name='python', price=99) b.save() 2)Book.objects.create(name='python', price=99) ...