摘要:ViewGroup的绘图流程:ViewGroup绘制包括两个步骤:1.measure 2.layout 在两个步骤中分别调用回调函数:1.onMeasure() 2.onLayout() 1.onMeasure() 在这个函数中,ViewGroup会接受childView的请求的大小,然后通过childView的 measure(newWidthMeasureSpec, heightMeasureSpec)函数存储到childView中,以便childView的getMeasuredWidth() andgetMeasuredHeight() 的值可以被后续工作得到。 2.onLayou...
阅读全文
摘要:public class MirrorView extends View {Paint m_paint;int m_nShadowH;Drawable m_dw;Bitmap m_bitmap;//xxxxMatrix mMatrix;int shadowHeight;public MirrorView(Context context, Bitmap bitmap) { super(context); m_bitmap = bitmap; _Init(); // TODO Auto-generated constructor stub}private void _Init() { //m_d.
阅读全文
摘要:android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。该类有如下几个和动画相关的函数:l setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为 android.view.animation.Animation;一个接受两个参数,类型为Context和int,分别为Context对象和定义 Animation的resourceID。setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAni
阅读全文
摘要:数据线丢了,不想花钱去买,在网上看了看,android手机居然可以通过wifi进行程序的调试,太好了,自己搞了一下,虽然网上写的很详细,但是还是有些问题,记录下来,下次参考。1.首先让android手机监听指定的端口: 这一步需要使用shell,因此手机上要有终端模拟器,不过网上很多,随便找个就行了,依次敲入下列几行:1 su//获取root权限2 setprop service.adb.tcp.port 5555//设置监听的端口,端口可以自定义,如5554,5555是默认的3 stop adbd//关闭adbd4 start adbd//重新启动adbd2.手机连...
阅读全文
摘要:在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。 方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。paint.setAntiAlias(true);paint.setAntiAlias(true); 方法二:给Canvas加上抗锯齿标志。有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。canvas.setDrawFilter(newPaintFlagsDrawFilter(0,Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));canva
阅读全文
摘要:之前在程序中有打了很多的log,当初打log的方式也没有统一,删掉肯定不行,统一修改也挺麻烦的。今天在stackoverflow上面看到有对这个的讨论主要有以下三种方式关闭log信息http://stackoverflow.com/questions/2446248/deactivate-any-calls-to-log-before-publishing-are-there-tools-to-do-this方法一:[html] view plaincopyif(condition)Log.d(LOG_TAG,"Something");缺点:每打log都要做判断方法二:I
阅读全文
摘要:onMeasure方法在控件的父元素正要放置它的子控件时调用。它会问一个问题,“你想要用多大地方啊?”,然后传入两个参数—— widthMeasureSpec和heightMeasureSpec。它们指明控件可获得的空间以及关于这个空间描述的元数据。比返回一个结果要好的 方法是你传递View的高度和宽度到setMeasuredDimension方法里。 接下来的代码片段给出了如何重写onMeasure。注意,调用的本地空方法是来计算高度和宽度的。它们会译解widthHeightSpec和heightMeasureSpec值,并计算出合适的高度和宽度值。 Java代码: ...
阅读全文
摘要:TextView控件有一个方法是控制阴影的加入的:mTextView.setShadowLayer(10F, 11F,5F, Color.YELLOW); 第一个参数为模糊半径,越大越模糊。 第二个参数是阴影离开文字的x横向距离。 第三个参数是阴影离开文字的Y横向距离。 第四个参数是阴影颜色。第二种方式是将TextView控件的style单独写成一个.xml文件进行添加。res/values/styles.xml[html] view plaincopy<?xmlversion="1.0"encoding="UTF-8"?><resou
阅读全文
摘要:StaticLayout layout = new StaticLayout(context.getString(R.string.about),textPaint,(int)(300*fDensity),Alignment.ALIGN_CENTER,1.5F,0,false);layout.draw(canvas);参数含义:1.字符串子资源2 .画笔对象3.layout的宽度,字符串超出宽度时自动换行。4.layout的样式,有ALIGN_CENTER, ALIGN_NORMAL, ALIGN_OPPOSITE三种。5.相对行间距,相对字体大小,1.5f表示行间距为1.5倍的字体高度。6.
阅读全文
摘要:Android早期的版本号有点“混乱”,比如Android 2.2对应的ADT版本为ADT-0.9.9而Android 2.3对应的的ADT版本则突然“跃迁”为 ADT-8.0.0.zip。而且Android SDK还包含SDK Tools和SDK Platform两个东西,它们的意义也不同,它们也有各自的版本号,因此有些人在此处容易混淆,下面将它们之间的对应关系进行一下简单的归纳:Android平台与SDK Tools版本、ADT版本的对应关系Android平台 SDK Tools的版本 ADT版本Android 2.2R7 ADT-0.9.9Android 2.3R8 ADT...
阅读全文
摘要:[html] view plaincopy在android4.0源码出来以后,关于sd卡问题似乎没有解决好,起码上层api中没有体现到位。其实在framework层中有相应的类去获得内外置sd卡信息,是否可读写的权限。 在2.x的版本中,在manifest中配置的权限android.permission.WRITE_EXTERNAL_STORAGE确实是用来使得sd卡获得写的权限。而在4.0开发的源码当中,由于有了内外置sd卡的区分,android.permission.WRITE_EXTERNAL_STORAGE 的权限用来设置了内置sd卡的写权限,如果在manifest中只是配置了这...
阅读全文
摘要:publicstaticDateaddYears(Datedate,intamount){returnadd(date,1,amount);}publicstaticDateaddMonths(Datedate,intamount){returnadd(date,2,amount);}publicstaticDateaddWeeks(Datedate,intamount){returnadd(date,3,amount);}publicstaticDateaddDays(Datedate,intamount){returnadd(date,5,amount);}publicstaticDate
阅读全文
摘要://连续两次返回退出程序 private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeT...
阅读全文