网站建设资讯

NEWS

网站建设资讯

androidbar,Androidbar仿安卓手势

如何控制android系统中NavigationBar 的显示与隐藏

在让navigation bar 显示货隐藏前,需要判断是否存在navigationbar。

站在用户的角度思考问题,与客户深入沟通,找到铜山网站设计与铜山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、空间域名、网页空间、企业邮箱。业务覆盖铜山地区。

public static boolean checkDeviceHasNavigationBar(Context activity) {

//通过判断设备是否有返回键、菜单键(不是虚拟键,是手机屏幕外的按键)来确定是否有navigation bar

boolean hasMenuKey = ViewConfiguration.get(activity)

.hasPermanentMenuKey();

boolean hasBackKey = KeyCharacterMap

.deviceHasKey(KeyEvent.KEYCODE_BACK);

if (!hasMenuKey !hasBackKey) {

// 做任何自己需要做的,这个设备有一个导航栏

return true;

}

return false;

}

安卓4.1之后为全虚拟键操作,和actionbar对应,底部的虚拟键菜单称为Navigation Bar。

myview.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION),其中的myview 可以为Layout中任意的一个View对象(可以有findViewById得到)。

Android自定义RatingBar(星级评分控件)

RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定!

RatingBar实现的效果图:

  看着自定义的样式远远比Android自带的样式好看多了,用户体验度远远提升,下面我们就来实现该控件:

定义根据图片自定一个RatingBar的背景条,和图片放到同一个目录下面

 five_rating_bar.xml

backgroud:是用来填充背景图片的,和进度条非常类似,当我们设置最高评分时(android:numStars),系统就会根据我们的设置,来画出以星星为单位的背景(假如android:numStars="5",就会画出5颗灰色的星星)

progress:是用来在背景图片基础上进行填充的指示属性(和进度条类似,第一进度位置)

secondaryProgress:同progress一样属于第二进度位置(如果不定义这个,进度条拖动,每次就画出一整颗星星(亮),第二进度(暗)没有覆盖掉第一进度之后的位置,从左往右是拖不出来N.5颗星星的,这样评分效果就不完整)

style.xml

  提取样式属于个人习惯,这里可以不提取出来,可以写在布局文件中,这里RatingBar的样式是通过style来切换的。

通过 parent属性来选择继承的父类,我们这里继承RatingBar类。

重新定义 progressDrawable属性(RatingBar的背景条)

maxHeight和minHeight可以根据我们图片像素或者其他参考值来设定。

在我们需要用到RatingBar的xml配置文件里面添加RatingBar控件。

main.xml

android:isIndicator              RatingBar是否是一个指示器(用户无法进行更改)

android:numStars               显示的星型数量,必须是一个整形值,像“100”。

android:rating                    默认的评分,必须是浮点类型,像“1.2”。

android:stepSize                 评分的步长,必须是浮点类型,像“1.2”。

就这么简单,我们自定义属于自己的RatingBar,星级评分控件!

android的Progressbar怎么用

在android中,Progressbar可以用来提醒用户某个任务的进度,具体用法如下:

1、首先创建一个按钮来启动一个带有progressbar的提醒;

2、编写代码为按钮添加一个点击事件;

3、运行效果;

4、修改progressbar的风格;

5、完整的代码。

public void onClick(View v) {

// prepare for a progress bar dialog

progressBar = new ProgressDialog(v.getContext());

progressBar.setCancelable(true);

progressBar.setMessage("File downloading ...");

progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);

progressBar.setProgress(0);

progressBar.setMax(100);

progressBar.show();

//reset progress bar status

progressBarStatus = 0;

//reset filesize

fileSize = 0;

new Thread(new Runnable() {

 public void run() {

while (progressBarStatus 100) {

 // process some tasks

 progressBarStatus = doSomeTasks();

 // your computer is too fast, sleep 1 second

 try {

Thread.sleep(1000);

 } catch (InterruptedException e) {

e.printStackTrace();

 }

 // Update the progress bar

 progressBarHandler.post(new Runnable() {

public void run() {

 progressBar.setProgress(progressBarStatus);

}

 });

}

// ok, file is downloaded,

if (progressBarStatus = 100) {

// sleep 2 seconds, so that you can see the 100%

try {

Thread.sleep(2000);

} catch (InterruptedException e) {

e.printStackTrace();

}

// close the progress bar dialog

progressBar.dismiss();

}

 }

      }).start();

          }

          });

  }

// file download simulator... a really simple

public int doSomeTasks() {

while (fileSize = 1000000) {

fileSize++;

if (fileSize == 100000) {

return 10;

} else if (fileSize == 200000) {

return 20;

} else if (fileSize == 300000) {

return 30;

}

// ...add your own

}

return 100;

}

将以上的代码直接输入到progressbar上即可。

android 的action bar有什么作用

下面是一个actionbar的使用截图,来源于android学习手册,360手机助手中可下载,里面有108个例子,源码还有文档

Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中。

Action bar的主要目的是:

  1.  提供一个用于识别应用程序的标示和用户的位置的专用空间。

   这个空间的左边是应用的图标或logo,以及Activity的标题。但是,如果是像当前选择的标签这样的标识当前View对象的导航标签,你可以选择删除Activity的标题。

  2.  在不同的应用程序之间提供一致的导航和视觉体验。

  Action bar提供了用于Fragment间切换的内置导航标签。它还提供了一个用于替换导航模式或优化当前视觉效果(如按照不同条件排序的列表)的下拉列表。

  3.  突出Activity的关键操作(如“搜索”、“创建”、“共享”等),并且在可预见的方法内给用户提供快捷的访问。

 对于关键的用户操作,你能够通过把选项菜单项作为操作项直接放到操作栏中,从而提供快捷的访问。操作项目还能提供一个操作窗口,这个窗口给更直接的操作行为提供一个嵌入的窗口部件。没有改进成操作项的菜单项在溢出菜单中还是有效的,用户既可以使用设备上的菜单按钮(设备上有按钮的时候),也可以使用操作栏中的溢出菜单按钮(当设备上不包含菜单按钮时)来显示这些操作项目。

 上面的总结一下:Action bar就是替换3.0以前的tittle bar和menu。

       

  图1. Honeycomb Gallery应用中的操作栏,从左边开始,依次是logo、导航选项标签和操作项(在右边插入的一个悬浮菜单按钮)。

   Note: If you're looking for information about the contextual action bar for displaying contextual action items, see the Menu guide.

  Action Bar Design   For design guidelines, read Android Design's Action Bar guide.

添加Action Bar

 从Android3.0(API级别 11)开始,Action bar被包含在所有的使用Theme.Hole主题的Activity(或者是这些Activity的子类)中,当targetSdkVersion或minSdkVersion属性被设置为“11”或更大的数值是,这个主题是默认的主题一。如:

[html] view plain copy print?

manifest ... 

uses-sdk android:minSdkVersion="4"

android:targetSdkVersion="11" /

...

/manifest

manifest ...

uses-sdk android:minSdkVersion="4"

         android:targetSdkVersion="11" /

...

/manifest

 在这个例子中,应用程序要求最小的API版本级别是4(Android 1.6),但是它还要求了目标API版本级别是11(Android 3.0)。这样,当应用程序运行在Android3.0或更高的版本上时,系统就会给每个Activity应用holographic  主题,这样,每个Activity就会包含Action bar。

  如果你想使用ActionBar API来进行添加导航模式和修改操作栏样式的操作,你应该把minSdkVersion属性设置为“11”或更大的值。有一些方法可以使你的应用支持更旧的Android版本,同时在API等级为11或更高的API等级的机器的使你的应用支持一些Action bar apis。为了保持后向兼容,请参考边框内的内容(边框内容如下)。

Remaining backward-compatible

If you want to provide an action bar in your application and remain compatible with versions of Android older than 3.0, you need to create the action bar in your activity's layout (because theActionBar class is not available on older versions).

To help you, the Action Bar Compatibility sample app provides an API layer and action bar layout that allows your app to use some of theActionBar APIs and also support older versions of Android by replacing the traditional title bar with a custom action bar layout.

删除Action bar

如果你不想要Action bar,把Activity的主题设置为Theme.Holo.NoActionBar就可以了,如:

[html] view plain copy print?

activity android:theme="@android:style/Theme.Holo.NoActionBar"

activity android:theme="@android:style/Theme.Holo.NoActionBar"

   或者使用Action bar的 hide()方法,如下:

[java] view plain copy print?

ActionBar actionBar = getActionBar();

actionBar.hide();

ActionBar actionBar = getActionBar();

actionBar.hide();

 当Action bar隐藏时,系统会调整你的Activity来填充当前有效的屏幕空间。你能够使用show()方法来再次显示操作栏。

在隐藏和删除Action bar时,要当心为了适应被Action bar占用的空间而导致的Activity的重新布局。如果你的Activity有规律的隐藏和显示Action bar,你可能想要使用覆盖模式。覆盖模式在Activity的顶部描画操作栏,而不是在它们所拥有的屏幕的区域。这样,在Action bar隐藏和重新显示时,你的布局保持不变。要使用覆盖模式,就要给Activity创建一个主题,并且把android:windowActionBarOverlay属性设置为true。

 提示:如果你有一个删除了Action bar的定制化的Activity主题,它把android:windowActionBar样式属性设置为false。但是,如果你使用了删除Action bar的一个主题,那么,创建窗口将不允许Action bar再显示,因此,你不能在以后给这个Activity添加Action bar---因为getActionBar()方法将返回null。

添加操作项

 有些时候,你可能想要让用户直接访问选项菜单中的一个项目,因此你要把应该在Action bar中显示的菜单项作为一个操作项来声明。操作项能够能够包含一个图标或文本标题。如果一个菜单项不作为一个操作项显示,那么系统就会把它放到悬浮菜单中。悬浮菜单既可以通过设备的Menu按钮来显示,也可以在Action bar中一个额外的按钮来显示。

 当Activity首次启动时,系统会调用onCreateOptionsMenu()方法给你的Activity组装Action bar和悬浮菜单。在这个回调方法中应该加载在XML文件中定义的菜单项资源,如:

[java] view plain copy print?

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.main_activity, menu);

return true;

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.main_activity, menu);

return true;

}

     

   图2. 带有图标和文本标题的两个操作项,和悬浮菜单按钮。

 在XML文件中,你能够通过给item元素声明android:showAsAction=”ifRoom”属性,请求把一个菜单项作为一个操作项来显示。用这种方式,只在有有效的空间时,菜单项才能显示在Action bar中。如果没有足够的空间,这个菜单项会显示在悬浮菜单中。

  如果你的菜单项支持标题和图标---带有android:title和android:icon属性---那么默认情况下,操作项仅显示图标。如果你要显示文本标题,就要给android:showAsAction属性添加withText设置,如:


网站名称:androidbar,Androidbar仿安卓手势
网页链接:http://cdweb.net/article/dsdscod.html