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. 反射中的BindingFlags

    不指定绑定标志  BindingFlags.Default 表示忽略 name 的大小写,不应考虑成员名的大小写   BindingFlags.IgnoreCase 只应考虑在所提供类型的层次结构级别 ...

  2. (转)SQL知识_Sql日期时间格式转换

    原文地址:http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.html sql server2000中使用convert来取得dat ...

  3. HBase数据模型和读写原理

    Hbase的数据模型和读写原理: ​ HBase是一个开源可伸缩的分布式数据库,他根据Google Bigtable数据模型构建在hadoop的hdfs存储系统之上. ​ HBase是一个稀疏.多维度 ...

  4. JavaScript Best Practices (w3cschool)

    JavaScript Best Practices (w3cschool) Local Variables: ·      总是在前面集中定义变量,(包括 for 的i).(strict mode) ...

  5. 学习js第一天小结

    1.JavaScript的书写方式: <script type="text/javascript">     </script> <script sr ...

  6. HTML中head与body标签

    一 head内常用标签 1.meta相关 #1.指定字符集 <meta charset="gbk"> #2.页面描述 <meta name="Descr ...

  7. 自动化工具gulp搭建环境(详解)

    src:读取文件和文件夹       dest:生成文件(写文件)       watch:监控文件       task:定制任务         pipe:以流的方式处理文件 bower的安装和使 ...

  8. 《C++数据结构-快速拾遗》 基础常识

    1.命名空间函数 namespace wjy { void print() { cout<<"; } int load(int num) { return num; } } us ...

  9. uva-10700-贪心

    题意:对于一个只有加法和乘法的序列,没有加法和乘法的优先级,问,结果最大值和最小值是多少,数字范围 1<=N <= 20 解题思路: (A+B)*C - (A+(B*C)) = AC + ...

  10. 8.2.1.3 Range 优化

    range access method 方法使用单个索引去取回数据表的子集,它包含一个或多个索引值区间.Rang它能对单个部分索引或者多个部分索引使用.以下章节给出详细的描述 去解释怎么从where语 ...