当前位置:首页 » 安卓系统 » android指示器

android指示器

发布时间: 2022-10-31 06:39:18

A. Android ExpandableListView使用小结(一)

ExpandableListView 是什么?

官方 给出的解释是:
A view that shows items in a vertically scrolling two-level list. This differs from the ListView by allowing two levels: groups which can indivially be expanded to show its children. The items come from the ExpandableListAdapter associated with this view.

简单翻译一下就是:
一种用于垂直滚动展示两级列表的视图,和 ListView 的不同之处就是它可以展示两级列表,分组可以单独展开显示子选项。这些选项的数据是通过 ExpandableListAdapter 关联的。

这个 ExpandableListAdapter 又是什么呢?和 ListView 使用的 BaseAdapter 差不多,都是用来给 View 提供数据、 实例化子布局的。实际使用的时候实现这个接口就可以了。

了解了这么多,我们来亲自实战一下。

到现在基本上完成了,我们来看一下运行效果~~

在下篇文章 Android ExpandableListView使用小结(二) 中,我会分享有关 ExpandableListView 的 Indicator(指示器)的使用,欢迎各位围观~

Demo 地址: 点我飞往 GitHub~

B. Android 12系统即将来袭:首批测试机型曝光

令人意想不到的是,距离Android 11发布没过多久,关于下一代手机系统Android 12的参数信息就陆续曝光。

近日,据媒体XDA报道,一份关于总结Android 12变化的早期草案文档在网上得以曝光。

据悉,全新的Android 12采用了全新的扁平化设计,用户界面将由浅米色替代当前的透明背景。

在通知栏中快捷设置的图标从6个减少至4个,并且每个图标尺寸变得更大。

同时, 谷歌还对界面中的电池与时间的位置进行了调换,并在右上角添加隐私指示器。

据了解,Android 12除了带来全新的UI界面,似乎还为用户增加了新的隐私功能。

通过隐私保护器可监控不同应用对摄像头与麦克风的调用权限, 当有应用使用这两个硬件时,隐私指示器便会呈现出不同的颜色,以此告知用户,避免用户在不知情的情况下隐私泄露

此外,当用户点击隐私指示器图标时,可知道是哪款应用正在使用摄像头、麦克风。

相信使用新版苹果iOS与小米MIUI系统的用户,对这项功能并不陌生。

新版系统将在今年上半年亮相,谷歌Pixel系列将是首批支持Android 12的机型。

除此之外,还有三星Galaxy S21、摩托罗拉Edge、Edge+、小米11以及一加9、Poco F2、Realme 8等多款安卓机型。

不过,由于距离Android 12正式发布时间还有一段距离,最终发布时是否支持以上机型目前还未知晓,后续相关信息我们将持续跟踪,敬请期待。

C. 大神推荐一个好用的Android API!!

那方面的api????
------------------
软件库的存在使得Android编码更方便快捷。在如此多 Android库中,我们该如何寻找最合适的一款呢?下面我们做了一个列表供你参考。
动画(Animation)
Android View Animations:强大的动画库,通过对它的使用,可以轻松创建各种动画效果。
RecyclerView Animators:允许操作者使用含炫酷动画效果的RecyclerView类。
APIs
CloudRail:帮助操作者更快地进行API集成服务。它将多个服务(例如Dropbox,Google Drive和OneDrive)捆绑成一个统一的API。此外,它可自动处理API更新,并保持API的代码一致。其接口可用于云存储,社交,支付等。
Retrofit:Retrofit由Square公司开发,是Android的REST客户端,其类型安全,可将http API转换成java接口。
图表(Charts)
MPAndroidChart:一款强大的图表生成库,可在Android上生成图表,同时还提供8种不同的图表类型和多种手势。
AndroidCharts:一款简单的图表创建工具,具有自定义的功能。
数据库(Database)
SQLBrite: 围绕SQLiteOpenHelper和ContentResolver创建封装,以在查询中使用流式语义。
Sugar ORM:使用SQLite数据库的简单操作,优势在于无需编写SQL查询。
数据架构(Data Structure)
Eclipse Collections:用于Java的Collections框架,可为容器类型附加迭代方法的操作等。
日期和时间(Date & Time)
TimesSquare for Android:简单独立的日历小部件,可在日历视图中选择日期。
Material Calendar View:移植到Material design的安卓CalendarView。
依赖(Dependencies)
Dagger:进行Android依赖注入的快捷方式。
文档(Files)
Android-FilePicker:一款照片选择器,可从列表中选择图片或文档。
Material File Picker:Material design中的文件选择器。
函数式编程(Functional Programing)
Retrolambda:在Java 7中使用Lambdas的一种操作。
手势(Gestures)
Sensey:在Android应用程序中添加手势的简单操作。
Android 3D Touch – PeekView:类似于iOS上的3D Touch,用以“预览”程序内容。
蓝牙(Bluetooth)
Android-BluetoothSPPLibrary:使用序列化蓝牙端口(Bluetooth Serial Port Profile)的简单操作。
RxAndroidBle:蓝牙低耗能处理工具。
相机(Camera)
CameraFilter:使用OpenGL着色器的实时相机滤镜。
Material Camera:Android开发的快速简易的相机框架。
位置(Location)
ReactiveLocation:Google Play API的小型但实用的封装程序,用于获取位置。
Smart Location Library:简化位置提供项的库。
布局(Layout)
Android Swipe Layout:为对象提供滑动布局,如,向左滑动即删除的操作。
FlexboxLayout :为Android提供框布局,其内容可通过CSS了解。
日志(Logging)
Logger:Android日志记录器。
Hugo:用触发注释的方法调用记录。
地图(Maps)
AirMapView :用以查看Google Maps API摘要,非常适合没有Google Play服务的应用程式。
Google地图的实用程序,如,热点地图或标记聚类。
音频播放器(Audio)
Music Player:含UI的完整音乐播放器。
RxAndroidAudio :封装带有Rx支持的Android Audio API RxAndroid音频播放器。
GIF
android-gif-drawable:使用视图和可绘制的GIF动图。
GifView :Android上使用View播放的GIF库。
图像(Image)
uCrop:对Android上的图片进行裁剪的库。
Glide:Android的媒体管理和图片加载库。
视频播放器(Video)
VideoPlayerManager:对Android MediaPlayer类的使用进行帮助说明的库。
Easy Video Player:易于操作的视频播放器,可通过视图使用。
信息(Messaging)
Chateau:在Android应用中提供聊天功能的框架。
网络(Networking)
OkHttp:Android的HTTP客户端。
AndroidAsync:基础级网络协议库。
消息推送(Push Notifications)
PubNub:用于处理推送通知的商业服务。
Gandalf:用于发送更新或维护相关的通知。
支付(Payments)
Android In-App Billing v3 Library:通过Android v3 API轻松处理应用内置付款的库。
Checkout:处理应用内购买操作的库。
安全(Security)
Sodium:轻松做加密,解密,签名和散列操作的工具。
PiracyChecker:通过使用Google的LVL,防止应用程式被盗用的工具。
文本(Text)
Ticker:显示滚动文本的UI组件。
MaterialEditText:Material Design的文本输入器。
字体(Font)
fontbinding:使用数据绑定的XML自定义字体的操作。
Calligraphy:在Android应用程式上使用传统字体的简易操作。
用户界面(User Interface)
Material Design Android Library:在Android中使用Google的Material Design(Android 2.2版)的库。
Material:将Material Design导入原有应用程序的库。
指示器(Activity Indicator)
AppIntro:为应用程序创建炫酷简介,类似于Google原始应用中的。
LolliPin:为应用程序提供pin密码。
操作按钮(Buttons)
Android-Bootstrap:通过使用Bootstrape规则,进行诸如在APP中创建按钮的操作。
Android Morphing Button:Android的操作按钮,其形状大小可更改。
表格(Form)
Vertical Stepper Form Library:在Material Design中创建表单的库。
键盘(Keyboard)
KeyboardVisibilityEvent:显示与隐藏键盘的简单操作。
AndroidKeyboardWatcher:追踪键盘开启/关闭操作情况的库。
菜单(Menu)
BottomBar:在Material Design中提供底部导航栏的视图组件。
Side Menu:为应用程序添加侧边菜单栏的工具。
评分(Rating)
Android-Rate:提醒用户对应用程序进行评价的简易库。
SimpleRatingBar:用于星级评分的UI组件。
滑屏(Slider)
SlidingMenu:轻松为应用程序创建滑动式菜单项。
MaterialDrawer:Android中轻便灵活的抽屉布局式库。
英语原文:Best Android Libraries for Developers
编译:开源中国
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:面向开发者的最佳 Android 库列表
本文地址:https://www.oschina.net/news/78857/best-android-libraries-for-developers

D. android 控件

用ViewFlow这个库,可以用setFlowIndicator这个方法设置指示器,你说的这是其中一种指示器——CircleFlowIndicator(圆点指示器)。

因为我之前没用过,所以了解的不多,具体用法和代码例子需要你自行网络了。

E. android viewpager怎么添加圆形指示器

这个view是自定义的,原生的没有,建议你可以搜索一下"ViewPager Indicator" 的用法。

F. android中viewpage怎么用

ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样。分三个步骤来使用它:
1.在住布局文件里加入

[html] view plain

<android.support.v4.view.ViewPager 这个组件,注意这个组件是用来显示左右滑动的界面的,如果不加载xml布局文件,他是不会显示内容的。
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >

2.加载要显示的页卡,

[java] view plain

LayoutInflater lf = getLayoutInflater().from(this);
view1 = lf.inflate(R.layout.layout1, null);
view2 = lf.inflate(R.layout.layout2, null);
view3 = lf.inflate(R.layout.layout3, null);

viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);

3.在Activity里实例化ViewPager组件,并设置它的Adapter(就是PagerAdapter,方法与ListView一样的),在这里一般需要重写PagerAdapter。

[java] view plain

PagerAdapter pagerAdapter = new PagerAdapter() {

@Override
public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == arg1;
}

@Override
public int getCount() {

return viewList.size();
}

@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView(viewList.get(position));

}

@Override
public int getItemPosition(Object object) {

return super.getItemPosition(object);
}

@Override
public CharSequence getPageTitle(int position) {

return titleList.get(position);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
weibo_button=(Button) findViewById(R.id.button1);
weibo_button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
intent=new Intent(ViewPagerDemo.this,WeiBoActivity.class);
startActivity(intent);
}
});
return viewList.get(position);
}

};
viewPager.setAdapter(pagerAdapter);

这是重写PagerAdapter的一个方法,我们还可以这样做:

[java] view plain

public class MyViewPagerAdapter extends PagerAdapter{
private List<View> mListViews;

public MyViewPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;//构造方法,参数是我们的页卡,这样比较方便。
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mListViews.get(position));//删除页卡
}

@Override
public Object instantiateItem(ViewGroup container, int position) { //这个方法用来实例化页卡
container.addView(mListViews.get(position), 0);//添加页卡
return mListViews.get(position);
}

@Override
public int getCount() {
return mListViews.size();//返回页卡的数量
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;//官方提示这样写
}
}

大同小异,有一定很重要,就是我们需要重写哪些方法。从上面的图片可以看到,ViewPager的适配器是PagerAdapter,它是基类提供适配器来填充页面ViewPager内部,你很可能想要使用一个更具体的实现,如FragmentPagerAdapter或FragmentStatePagerAdapter。在这里需要说明一下,其实ViewPager应该和Fragment一起使用,至少谷歌官方是这么想的,但是在3.0之下,我们没有必要这么做。下面要注意,当你实现一个PagerAdapter,你必须至少覆盖以下方法:

instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object)
getCount()
isViewFromObject(View, Object)
从上面的例子中可以看到,我们最少也是实现了上面四个方法,当然如果你想让程序更健壮或是功能更全面,你可以重写其他的方法。下面看一下第一个完整的示例代码:

主页面Activity:

[java] view plain

package com.example.viewpagerdemo;

import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;

public class ViewPagerDemo extends Activity {

private View view1, view2, view3;//需要滑动的页卡
private ViewPager viewPager;//viewpager
private PagerTitleStrip pagerTitleStrip;//viewpager的标题
private PagerTabStrip pagerTabStrip;//一个viewpager的指示器,效果就是一个横的粗的下划线
private List<View> viewList;//把需要滑动的页卡添加到这个list中
private List<String> titleList;//viewpager的标题
private Button weibo_button;//button对象,一会用来进入第二个Viewpager的示例
private Intent intent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pager_demo);
initView();
}
/*在这里需要说明一下,在上面的图片中我们看到了,PagerTabStrip,PagerTitleStrip,他们其实是viewpager的一个指示器,前者效果就是一个横的粗的下划线,后者用来显示各个页卡的标题,当然而这也可以共存。在使用他们的时候需要注意,看下面的布局文件,要在android.support.v4.view.ViewPager里面添加
android.support.v4.view.PagerTabStrip以及android.support.v4.view.PagerTitleStrip。

private void initView() {
viewPager = (ViewPager) findViewById(R.id.viewpager);
//pagerTitleStrip = (PagerTitleStrip) findViewById(R.id.pagertitle);
pagerTabStrip=(PagerTabStrip) findViewById(R.id.pagertab);
pagerTabStrip.setTabIndicatorColor(getResources().getColor(R.color.gold));
pagerTabStrip.setDrawFullUnderline(false);
pagerTabStrip.setBackgroundColor(getResources().getColor(R.color.azure));
pagerTabStrip.setTextSpacing(50);
/*
weibo_button=(Button) findViewById(R.id.button1);
weibo_button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
intent=new Intent(ViewPagerDemo.this,WeiBoActivity.class);
startActivity(intent);
}
});
*/

view1 = findViewById(R.layout.layout1);
view2 = findViewById(R.layout.layout2);
view3 = findViewById(R.layout.layout3);

LayoutInflater lf = getLayoutInflater().from(this);
view1 = lf.inflate(R.layout.layout1, null);
view2 = lf.inflate(R.layout.layout2, null);
view3 = lf.inflate(R.layout.layout3, null);

viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);

titleList = new ArrayList<String>();// 每个页面的Title数据
titleList.add("wp");
titleList.add("jy");
titleList.add("jh");

PagerAdapter pagerAdapter = new PagerAdapter() {

@Override
public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == arg1;
}

@Override
public int getCount() {

return viewList.size();
}

@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView(viewList.get(position));

}

@Override
public int getItemPosition(Object object) {

return super.getItemPosition(object);
}

@Override
public CharSequence getPageTitle(int position) {

return titleList.get(position);//直接用适配器来完成标题的显示,所以从上面可以看到,我们没有使用PagerTitleStrip。当然你可以使用。

}

@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
weibo_button=(Button) findViewById(R.id.button1);//这个需要注意,我们是在重写adapter里面实例化button组件的,如果你在onCreate()方法里这样做会报错的。
weibo_button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
intent=new Intent(ViewPagerDemo.this,WeiBoActivity.class);
startActivity(intent);
}
});
return viewList.get(position);
}

};
viewPager.setAdapter(pagerAdapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_view_pager_demo, menu);
return true;
}

}

它的布局文件:

[java] view plain

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >

<android.support.v4.view.PagerTabStrip
android:id="@+id/pagertab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"/>

</android.support.v4.view.ViewPager>

</LinearLayout>
<!--注意事项:
1.这里ViewPager和 PagerTabStrip都要把包名写全了,不然会ClassNotFount
2.API中说:在布局xml把PagerTabStrip当做ViewPager的一个子标签来用,不能拿出来,不然还是会报错
3.在PagerTabStrip标签中可以用属性android:layout_gravity=TOP|BOTTOM来指定title的位置
4.如果要显示出PagerTabStrip某一页的title,需要在ViewPager的adapter中实现getPageTitle(int)-->

G. 谷歌 Android 12 已用上新的通话状态栏指示器,可显示通话时长

IT之家 8 月 15 日消息 谷歌正在为 Android 12 推出越来越多的系统外观改进,IT之家此前报道,Android 12 将为通话过程添加了新的状态栏指示器,可以在 状态栏显示通话时长,并且有新的设计 ,但还没有推出。

Android 12 Beta 2

Android 11

现在,据外媒 XDA,Google Phone 应用的 68.0.388241074-publicbeta Beta 3 版本中,已经支持了新的通话状态栏指示器,而且 下拉通知栏中的界面有了新变化 。

可以看到,实装的下拉通知栏选项(深蓝色部分)中,多了听筒、话筒的控制开关,而且有了通话时间。

H. android如何给viewpager最后一页设置不同指示器

1.可以在走后一页添加一个Button或者imageVIew(开始之类的话),点击button你相应的跳入到主页面去 通过intent (目前很多应用采用的是这种)

I. android rollpagerview指示器之间的间距怎么设置

就直接设置啊

J. 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,星级评分控件!

热点内容
安卓动态壁纸怎么提取 发布:2025-03-06 11:07:26 浏览:110
有锁安卓手机有什么坏处 发布:2025-03-06 11:00:20 浏览:575
dvwa上传 发布:2025-03-06 10:46:58 浏览:699
新款荣放低配有哪些新配置 发布:2025-03-06 10:41:29 浏览:791
如何给文件上加密 发布:2025-03-06 10:33:09 浏览:371
python类super 发布:2025-03-06 10:32:16 浏览:74
编程代码构成 发布:2025-03-06 10:23:58 浏览:955
如何看一台电视配置 发布:2025-03-06 10:18:08 浏览:253
如何查笔记本电脑配置 发布:2025-03-06 10:17:29 浏览:744
安卓手机消息弹幕怎么设置 发布:2025-03-06 10:10:22 浏览:186