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 ...
随机推荐
- Android最新版支付宝支付集成
上次集成支付宝支付已经很久了,今天写东西用到了支付宝支付,就大致写一下流程: 去蚂蚁金服下载最新版的Android&IOS端SDK 全部文档 -- 资源下载 -- App支付客户端 下载后解压 ...
- hive使用map字段
create table role_bigtable(table_name string, record_date string, server_id string, map_col map<s ...
- Java7 新特性: try-with-resources
Try-with-resources是java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源. 利用Try-Catch-Finally管理资源(旧的代码风格)在ja ...
- 1.spring boot起步之Hello World【从零开始学Spring Boot】
[视频&交流平台] àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm ...
- HBase中无法使用backspace删除
转载自:Hbase命令行无法删除的问题 在HBase的shell命令行界面输入错误项按"退格键"删除,却怎么也删除不了: 解决办法: 第一步,修改SecureCRT的设置参数: 第 ...
- java容器思维导图
转载自:https://blog.csdn.net/zbdxcyg/article/details/72330833
- 29.Mongodb可视化工具 Studio 3t
Studio 3T 链接地址:https://pan.baidu.com/s/1X-Sqk50Xm76NJIZOz0ehFw 密码:td2a 安装配置成功链接本地如图所示:
- python [] 数组 list 交集 并集 差集
>>> a = [1,2,3] >>> b = [2,4,5] >>> list(set(a).intersection(set(b))) [2] ...
- js/jquery this 坑
重要:js onclick() 函数中,取不到this !!! 错误的写法: function test(){ $(this).parent().addClass('active') } 正确的写法是 ...
- 机器学习入门-数值特征-进行多项式变化(将特征投影到高维度上) 1.PolynomialFeatures(将数据变化为多项式特征)
函数说明: 1. PolynomialFeatures(degree=2, interaction_only=False, include_bias=False) 参数说明:degree=2,表示多项 ...