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高级控件(下)的更多相关文章

  1. Android高级控件(下)

    计时器(Chronometer) getBase() 基准时间 setFormat() 设置显示格式 start() 开始计时 stop() 停止计时 setOnChronometerListener ...

  2. Android 高级控件(七)——RecyclerView的方方面面

    Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...

  3. Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现

    Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...

  4. Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷

    Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...

  5. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现

    Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...

  6. Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例

    Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...

  7. Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系

    Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 现在的二维码可谓是烂大街了,到处都是二维码,什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...

  8. Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...

  9. Android高级控件(三)——&#160;使用Google ZXing实现二维码的扫描和生成相关功能体系

    Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 如今的二维码可谓是烂大街了.到处都是二维码.什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...

  10. Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,添加和删除等功能 这个控件还是挺复杂的.也是项目中应该算是比較经常使用的了,所以写了一个小Demo来讲讲,主要是自己定义a ...

随机推荐

  1. 2018北美部分CS项目学费

    yearly cost from official website USC 城里 24credit about 49k + cost of room&food BU 城里 NEU 65k 城里 ...

  2. ZooKeeper系列(7):ZooKeeper一致性原理

    一.ZooKeeper 的实现 1.1 ZooKeeper处理单点故障 我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示. 图 1.1 ZooK ...

  3. WebBrowser JS回调delphi的方法 (简单通用)

    上一部分讲了Delphi根据方法名调用方法,这一部分还有用到,接着上一章: [主要原理] 通过TEmbeddedWB控件的OnShowMessage事件捕获弹窗来实现,弹窗时定义方法名和参数,在捕获方 ...

  4. golang 入门之struct继承,嵌套

    package main import "fmt" type Jocongmin struct{ Name string Home string Want string } fun ...

  5. RISC与CISCCPU构架

    RISC 精简指令集 CISC复杂指令集 CISC架构的代表: x86, C51 RISC架构的代码:arm, mips,powerpc, avr, pic 指令集的区别 首先从字面上理解就能知道, ...

  6. Vsftp的PASV mode(被动模式传送)和Port模式及 Linux下VsFTP配置全方案

    什么叫做PASV mode(被动模式传送)?他是如何工作的? FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接.FTP服务程序一般会支持两种不同的模式,一种是Po ...

  7. [SDOI2016]生成魔咒(后缀自动机)

    /* 水题, 根据性质做就行, nq不会对答案产生贡献, 那么只算p的贡献就好了 */ #include<cstdio> #include<algorithm> #includ ...

  8. Spring boot 下使用 Swagger

    通过Swagger 可以更好的将后台的RESTfull API文档化,如下图所示: 1. Swagger 主要依赖以下两个jar包: <!-- https://mvnrepository.com ...

  9. 禁用firefox 56自动更新

    firefox 56支持旧式扩展,这很重要! 它却自动更新,简单地关了也不行,很是牛氓! ========== -备份C:\Users\用户名\AppData\Roaming\Mozilla\Fire ...

  10. python中的insert

    insert()往列表的指定位置添加元素,举个例子: 1 a = ["hello", "world", "dlrb"] 2 a.insert ...