‘壹’ android有没有圆形第三方框架显示圆形进度条倒计时
使用IDV ,外层DIV画进度条矩形边框,内层DIV使用JS,进行填充宽度
‘贰’ android 怎么自定义圆形的viewfilpper
属性中可以加入background来定义它的背景,将背景定义成一个圆形的drawable就可以了。
‘叁’ android 如何绘制3d 饼图
有很多框架可以使用,我使用的是jquery的jqplot报表架构。将数据封装到一个webview中。报表显示在webview里。之所以使用这个架构。我考虑的是跨平台性,同样的报表内容,不但android可以直接使用,ios开发也可以直接使用。
‘肆’ android中,如何做圆形的button按钮
自己绘制圆形的图片,然后在button布局里面用BackgroundDrawable设置为button背景。android中是不带圆形的button的
‘伍’ android开发怎样改变菜单的形状
这个android自带的菜单好像还改变不了形状,仅限我所了解的。大神略过。
提供一个思路,lz可以参考。
实现自定义的view,绘制三角形、半圆形的菜单界面,然后自行控制监听事件并作出处理;
重写android的菜单键点击事件,自己写逻辑控制自定义view的显示与隐藏;
望采纳!
‘陆’ 求助,怎么用android实现控件的3D立体旋转效果
实现水平滑动,所以可在手势抬起的时候进行判断并处理,是滑动显得流畅,代码如下:
java">packagecom.example.rotation3dview;
importandroid.content.Context;
importandroid.graphics.Camera;
importandroid.graphics.Canvas;
importandroid.graphics.Matrix;
importandroid.util.AttributeSet;
importandroid.view.MotionEvent;
importandroid.view.VelocityTracker;
importandroid.view.View;
importandroid.view.ViewDebug.HierarchyTraceType;
importandroid.view.ViewGroup;
importandroid.widget.ImageView;
importandroid.widget.Scroller;
{
privateintmCurScreen=1;
//滑动的速度
privatestaticfinalintSNAP_VELOCITY=500;
;
privateintmWidth;
privateScrollermScroller;
privateCameramCamera;
privateMatrixmMatrix;
//旋转的角度,可以进行修改来观察效果
privatefloatangle=90;
publicRote3DView(Contextcontext,AttributeSetattrs){
super(context,attrs);
mScroller=newScroller(context);
mCamera=newCamera();
mMatrix=newMatrix();
initScreens();
}
publicvoidinitScreens(){
ViewGroup.LayoutParamsp=newViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
for(inti=0;i<3;i++){
this.addView(newImageView(this.getContext()),i,p);
}
((ImageView)this.getChildAt(0)).setImageResource(R.drawable.page1);
((ImageView)this.getChildAt(1)).setImageResource(R.drawable.page2);
((ImageView)this.getChildAt(2)).setImageResource(R.drawable.page3);
}
@Override
protectedvoidonLayout(booleanchanged,intl,intt,intr,intb){
intchildLeft=0;
finalintchildCount=getChildCount();
for(inti=0;i<childCount;i++){
finalViewchildView=getChildAt(i);
if(childView.getVisibility()!=View.GONE){
finalintchildWidth=childView.getMeasuredWidth();
childView.layout(childLeft,0,childLeft+childWidth,childView.getMeasuredHeight());
childLeft+=childWidth;
}
}
}
@Override
protectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){
super.onMeasure(widthMeasureSpec,heightMeasureSpec);
finalintwidth=MeasureSpec.getSize(widthMeasureSpec);
finalintwidthMode=MeasureSpec.getMode(widthMeasureSpec);
if(widthMode!=MeasureSpec.EXACTLY){
thrownewIllegalStateException("仅支持精确尺寸");
}
finalintheightMode=MeasureSpec.getMode(heightMeasureSpec);
if(heightMode!=MeasureSpec.EXACTLY){
thrownewIllegalStateException("仅支持精确尺寸");
}
finalintcount=getChildCount();
for(inti=0;i<count;i++){
getChildAt(i).measure(widthMeasureSpec,heightMeasureSpec);
}
scrollTo(mCurScreen*width,0);
}
privatefloatmDownX;
@Override
publicbooleanonTouchEvent(MotionEventevent){
if(mVelocityTracker==null){
mVelocityTracker=VelocityTracker.obtain();
}
//将当前的触摸事件传递给VelocityTracker对象
mVelocityTracker.addMovement(event);
floatx=event.getX();
switch(event.getAction()){
caseMotionEvent.ACTION_DOWN:
if(!mScroller.isFinished()){
mScroller.abortAnimation();
}
mDownX=x;
break;
caseMotionEvent.ACTION_MOVE:
intdisX=(int)(mDownX-x);
mDownX=x;
scrollBy(disX,0);
break;
caseMotionEvent.ACTION_UP:
=mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000);
intvelocityX=(int)velocityTracker.getXVelocity();
if(velocityX>SNAP_VELOCITY&&mCurScreen>0){
snapToScreen(mCurScreen-1);
}elseif(velocityX<-SNAP_VELOCITY&&mCurScreen<getChildCount()-1){
snapToScreen(mCurScreen+1);
}else{
snapToDestination();
}
if(mVelocityTracker!=null){
mVelocityTracker.recycle();
mVelocityTracker=null;
}
break;
}
returntrue;
}
@Override
publicvoidcomputeScroll(){
if(mScroller.computeScrollOffset()){
scrollTo(mScroller.getCurrX(),mScroller.getCurrY());
postInvalidate();
}
}
publicvoidsnapToDestination(){
setMWidth();
finalintdestScreen=(getScrollX()+mWidth/2)/mWidth;
snapToScreen(destScreen);
}
publicvoidsnapToScreen(intwhichScreen){
whichScreen=Math.max(0,Math.min(whichScreen,getChildCount()-1));
setMWidth();
intscrollX=getScrollX();
intstartWidth=whichScreen*mWidth;
if(scrollX!=startWidth){
intdelta=0;
intstartX=0;
if(whichScreen>mCurScreen){
setPre();
delta=startWidth-scrollX;
startX=mWidth-startWidth+scrollX;
}elseif(whichScreen<mCurScreen){
setNext();
delta=-scrollX;
startX=scrollX+mWidth;
}else{
startX=scrollX;
delta=startWidth-scrollX;
}
mScroller.startScroll(startX,0,delta,0,Math.abs(delta)*2);
invalidate();
}
}
privatevoidsetNext(){
intcount=this.getChildCount();
Viewview=getChildAt(count-1);
removeViewAt(count-1);
addView(view,0);
}
privatevoidsetPre(){
intcount=this.getChildCount();
Viewview=getChildAt(0);
removeViewAt(0);
addView(view,count-1);
}
privatevoidsetMWidth(){
if(mWidth==0){
mWidth=getWidth();
}
}
}
实现立体效果,添加如下代码:
/*
*当进行View滑动时,会导致当前的View无效,该函数的作用是对View进行重新绘制调用drawScreen函数
*/
@Override
protectedvoiddispatchDraw(Canvascanvas){
finallongdrawingTime=getDrawingTime();
finalintcount=getChildCount();
for(inti=0;i<count;i++){
drawScreen(canvas,i,drawingTime);
}
}
publicvoiddrawScreen(Canvascanvas,intscreen,longdrawingTime){
//得到当前子View的宽度
finalintwidth=getWidth();
finalintscrollWidth=screen*width;
finalintscrollX=this.getScrollX();
//偏移量不足的时
if(scrollWidth>scrollX+width||scrollWidth+width<scrollX){
return;
}
finalViewchild=getChildAt(screen);
finalintfaceIndex=screen;
finalfloatcurrentDegree=getScrollX()*(angle/getMeasuredWidth());
finalfloatfaceDegree=currentDegree-faceIndex*angle;
if(faceDegree>90||faceDegree<-90){
return;
}
finalfloatcenterX=(scrollWidth<scrollX)?scrollWidth+width
:scrollWidth;
finalfloatcenterY=getHeight()/2;
finalCameracamera=mCamera;
finalMatrixmatrix=mMatrix;
canvas.save();
camera.save();
camera.rotateY(-faceDegree);
camera.getMatrix(matrix);
camera.restore();
matrix.preTranslate(-centerX,-centerY);
matrix.postTranslate(centerX,centerY);
canvas.concat(matrix);
drawChild(canvas,child,drawingTime);
canvas.restore();
}
‘柒’ android 怎么把button变成圆形
使用shape,请看下面截图,例子来自于android学习手册,360手机助手中下载,里面有108个例子、源码还有文档。
‘捌’ Android 4.3的主要变化
果冻豆(Jelly Bean)系列系统在黄油项目(Project butter)的帮助下,已引入“垂直同步定时”(vsync timing)、“三重缓冲”(triple buffering)、“减少的触摸延时”(reced touchlatency),“CPU输入提振”(CPU input boost)和“硬件加速的2D渲染”(hardware-accelerated 2D rendering)等技术,令安卓设备特别是Nexus系列运行起来达到了前所未有的顺滑。
而作为Android 4.X系列的作品之一,Android 4.3系统再次增加了新的优化:对于图形性能,硬件加速2D渲染优化了流绘图命令;对于多线程处理,渲染也可以使用多个CPU内核的多线程执行某些任务;此外,新系统还对形状和文本的渲染进行了提升,并改进了窗口缓冲区的分配。所有这一切,都将会为用户带来一个全新的安卓体验,快速、流畅而灵敏。 多用户切换:在上一版本系统(Android 4.2)中,平板系统加入了多用户(multi-user)的功能,它允许同一台设备拥有最多8个独立的用户空间,并且可以保持3个账户的活跃状态;而新版系统优化了锁屏界面的用户切换速度,再多用户也无压力。
受限账户:Android 4.3系统在此基础上引入“保密文档”( Restricted profiles)功能,根据不同的受限账户情况(儿童、访客和零售商店等),设备所有者可以进一步指派哪些应用有权使用所有者的身份和设置,更能够简单地禁用或隐藏他们;此外,单独应用的特定功能还能够在API级别上进行限制,比如定位或应用内购。 支持“智能蓝牙”(Bluetooth Smart):Android 4.3系统正式支持低能耗蓝牙4.0技术(Bluetooth 4.0 Low Energy)。相较于3.0版本,蓝牙4.0拥有低功耗、3毫秒低延迟、AES-128加密等特点,它将三种规格集一体,包括传统蓝牙技术、高速技术和低耗能技术。根据官方的数据,蓝牙4.0的峰值能耗约为3.0的一半,极低的运行和待机功耗使得一粒纽扣电池甚至可连续工作一年之久。考虑到安卓设备的全球占有率情况,低能耗的连接方式,将会促进可穿戴设备的普及,并加速互联网的建设。
支持“Bluetooth AVRCP 1.3”: 将帮助用户更好地完成外放设备与安卓设备间的音频互动,包括停止、播放、音量调整和上下首曲目切换等操作;此外,用户的车载音响还可以显示曲目名称。 企业用户:Android4.3为企业用户带来了丰富的新功能:单独的应用能够在WPA2网络上配置WiFi凭证,并通过可扩展身份验证协议(EAP)与网络交换认证;Keychain API为应用程序密匙加入了一种新的处理方式,即使系统被入侵,也无法从设备上导出;系统加入了新的密钥库提供程序,用于创建无法被其他应用所查看的安全密匙,私人密钥库密匙同样无法被导出;/System分区会组织应用执行setuid程序(从而关掉一些漏洞);最后,Android4.3系统还使用了SELinux强制访问控制系统。
普通用户:Android4.3隐藏了一个名曰“AppOps”的权限控制器,可以让我们自定义应用所能获取的权限,而不再是之前非此即彼的“全部允许”或“取消安装”。开启这项彩蛋功能的方法是调取“活动”(Activity)>“设置”>“应用操作”,并且已有现成的封装调取程序可供下载。尽管我们可以借助LBE、SRT、PDroid、XPrivacy和CM Guard等应用来管理程序的权限,但原生安卓自带该功能,毕竟是一种突破,相信谷歌会进一步完善安卓系统的安全保障机制。 在Android 4.3系统中,所有使用“前台服务接口”实现运行的的应用程序都会被强制显示在通知栏和拓展通知窗的“正在运行”(Ongoing)中,而不受“显示通知”选项的控制。
根据谷歌安卓工程师在Google+上的解释,这种做法是谷歌有意为之的,目的是让无法杀掉进程且在后台静默运行的应用程序在通知栏上“显形”,让用户得以关注“行为不端”的应用程序。
他们发现,有相当多的应用程序滥用“前台服务接口“(Service.startForeground() API )来使自己常驻后台,不被杀死;又通过制作一个异常的通知对象,来躲过系统的通知管理器(Notification Manager),不为用户所察觉,威胁着机主的隐私安全。
起初,谷歌尝试更好地检测此类通知并令这些程序运行崩溃,但寡不敌众,也治标不治本;为此,在Android 4.3系统中,谷歌保障了用户对正在运行的应用程序的知情权和处置权,也势必有效遏制针对此API的滥用行为。 全景照片: 我们知道在JellyBean系列系统中,“全景拍摄”包含两种模式:“横轴全景”(Panorama)和“360度全景”(Photosphere)。其中,后者逼真的“街景浏览”效果和“鱼眼浏览”效果着实惊艳了许多用户;不过,拍摄过程中产生的图片衔接与校准问题,又令不少人郁闷。好消息是,谷歌地图项目经理Evan Rapoport宣布已大大提升了Android 4.3的全景拍照功能,通过优化对准和拼接颜色,照片将更加明亮,过度将更加自然。接下来,借助HTML5和Java技术,我们可以将自己得意的街景照片分享到论坛和社交网站。
设置界面:由Android 4.2系统的“圆形菜单”改进为Android 4.3系统的“弧形菜单”,避免手指遮挡现象,降低误点击可能,更加适合单手操作;同时,进一步利用图标代替文字说明,直观而时尚。
定时器:Android4.3系统的相机增加了定时拍摄的功能。
快门键:拍照状态时,新版系统支持利用音量键拍照。无论点击音量增大还是音量减小,相机都会在按下按钮起进行对焦测光,松开按钮即释放快门拍下照片。 “禁用应用”标签:在Android 4.3系统中,用户可以通过“设置”>“应用”里最右侧的“禁用应用”标签(Disabled tab),直接浏览所有被冻结的自带应用,而不必再通过“所有应用”标签(Alltab)苦苦找寻了。
“白日梦”屏保:新版系统的 Photo Daydream功能能够在Android 4.3系统的相册以及文件夹当中进行导航。 工具:开发者们能够使用到增强的Systrace工具,它能够从硬件模组、内核功能、Dalvik虚拟机和资源加载当中引入数据。追踪API能够对代码段进行标记,节约部分系统资源。
选项:系统隐藏的开发者选项也补充了新的功能,帮助开发者更好地掌握GPU情况。 Android除了保持以往的系统版本升级外,还逐渐引入模块化升级。即便用户无法及时将设备系统更新到最新版本,仍然可以通过谷歌商店替换部分符合条件的内置应用,体验到更为人性化的操作。
(1) 谷歌音乐播放器(Google PlayMusic)得到改进,融入了卡片式设计灵感,用色更明亮,交互更流畅。
(2) 谷歌云笔记(Google Keep)早在3月份就正式推出,而今整合到新版系统中,方便用户随时随地记录感悟。
(3) 环聊(Hangouts)于2013年谷歌I/O大会上正式推出,脱胎于Google Plus,整合了多项谷歌聊天工具,用以替代Google Talk应用。
‘玖’ Android显示3D模型没有立体效果,怎么在Android中显示模型边界线
是不是你启用了选择物体就显示线框这个选项啊?
右键点击max最下面一个小按钮(见图)。
然后选择"Viewport Style & Appearance"
然后取消勾:"Display Selected with Edged Faces"
最后点击OK就好了。
注意:每个视窗都要这么来一下。
‘拾’ android中怎么绘制这种圆形布局
圆形是个背景,可以通过xml定义背景图片
在res/drawable/下添加背景xml,test.xml代码如下
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<shape android:shape="oval">
<padding android:top="2dp" android:right="2dp" android:bottom="2dp" android:left="2dp" />
<solid android:color="#00a0eb"/>
</shape>
</item>
<item >
<shape android:shape="oval">
<solid android:color="#ffffffff"/>
</shape>
</item>
</layer-list>
然后在layout下添加布局文件
代码如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="indi.zcm.dropdown.MainActivity" >
<RelativeLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/test">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="27dp"
android:text="购买人数" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp"
android:textSize="26sp"
android:text="32514" />
</RelativeLayout>
</RelativeLayout>
这个应该就是你要的效果