`
hemowolf
  • 浏览: 151591 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
本博客停止更新不再维护。最新博文请移步到 http://my.oschina.net/droidwolf
    android内置的ProgressBar控件里不少的方法充斥着交叉的synchronized锁。很多时候刷进度导致ProgressBar显示不出来,也没见哪里设置隐藏的,估计是锁导致的,浪费时间看源码。android ui的更新本来就限制死在ui线程里,乱加神码锁,脑残!解决问题只能自己画进度条了。    UI元素比较简单,不需要动画、SecondaryProgress,所以可以简单的按照进度百分比设置一个Drawable的宽度再画在view视图上。实现好后也没发现神码问题,版本上了一段时间偶然才在一台2.3 系统设备上发现所有的进度条是100%的。调试了很长时间,进度、宽度计算 ...
     ListView嵌入ViewPager等横向滚动控件,会导致ViewPager左右拨动和ListView手势冲突。按经验(Gallery中的子视图处理Click事件)只要比对滑动的X坐标大于Y坐标,就交由ViewPager处理,应该是个简单的问题。实际search到的比较火方案的思路是用SimpleOnGestureListener的onScroll回调中判断X、Y坐标拨动绝对值是否拦截,不过这个到处转载的方案是有很多问题的(比如拨动不灵敏、上下拨有问题),那些转载的是脑子被炉踢了吗?    最后在stackoverflow看到一个解决方法,思路除了考虑X、Y坐标还考虑到了dow ...
    本打算用ViewFlow来实现项目中的相关功能的。在该项目的主页 里作者只是提醒在api level8以下注意事项 The manifest states a min sdk version of 4, which is true. But in any case you want to support an api level < 8 you will have to forward an onConfigurationChanged event to the ViewFlow from your Activity. I know this isn't a very nic ...
    奇葩的发现在三星S4上设置TextView的ellipsize="marquee"居然显示省略号。翻阅TextView源码发现有一段代码涉及到ViewConfiguration if (ViewConfiguration.get(context).isFadingMarqueeEnabled()) { setHorizontalFadingEdgeEnabled(true); mMarqueeFadeMode = MARQUEE_FADE_NORM ...
     没发现有相关的属性,google一下都是重写Span。做个记录 private void stripUnderLines(TextView tv) { try { Spannable text = (Spannable) tv.getText(); if (text == null) return; URLSpan[] old = text.getSpans(0, text.length(), URLSpan.class); if (old == null) return; for (int ...
    如下图,角标在移动设备中是比较常见的ui元素。各种“最新”、“vip”、“最热”之类的层出不穷。        在展现上最简单的做法是让ui同学ps一张角标图片输入“最新”、“vip”、“最热”等盖在要特别醒目提醒的控件上面即可。当然偷懒是没有一劳永逸的做法的,图片实现带文字的角标在当下android设备如此繁荣的情形下,码工们必然会为千奇百怪的适配而劳碌成大牛的,如果频繁更换图片中的文字ui设计师也会烦滴。    下文探讨第一种角标的代码实现方式,其他三种还有比较少见的右下角、左下角的角标也可以照着做了。   把第一种角标直观化卸妆,那么她是这样的           而这个 ...
    如果您用google play会发现当按下应用图标时,会出现一透明色覆盖在图标上面(如下图)。注意这个不是background效果而是foreground或是遮罩(overlay)。        实现这种效果通常的思路是在容器(LinearLayout、RelativeLayout等)画玩子控件后,再画一透明色或透明图片在容器顶层达到覆盖遮罩的效果。不过这种思路还需重载onTouchEvent来监听手指按下、抬起等,而且实现将非常的繁琐。    幸好还有更加便捷的实现方法:那就是google在View类中提供的getDrawableState、drawableStateChange ...
把之前的文章合并到这里,添加bulk批量操作函数. android sqlite也无非是CRUD,所以通常是Ctrl+C、Ctrl+V,不过拷贝的代码容易出错浪费不少苦逼的时间。android sqlite的ORM的开源项目现在也有不少,不过对于一个嵌入式程序除了性能也需要考虑包的大小,所以ORM在嵌入式来说起码现在还不适合时机。   这个小工具功能很简单,不添加任何外部引用,使用方式直接运行按提示做即可^_^。   具体功能:通过输入create table语句生成表CRUD类、实体类(可选)。  由于sqlite解析器没有解析check约束,所以create table语句 ...
学习go。记录下 1),package、import     这两个功能在现在的很多语言(java、C#)都具备了。这里面引入包在C家族确实是个很好的东西,使得代码组织更清晰;import而不是include头文件,完全剔除了c家族的弊病。 2),变量命名风格的改变    定义变量:      var i int跟C家族语法int i;相去甚远,貌似更接近delphi、javascript、scala风格。当然在语法分析中这样定义变量比C风格的定义是更容易识别的。    类型推导:      类型推导在很多函数语言(scala、f#等)是必须滴,当然C#为了推出lambda表达式也实现了 ...
    书看了大半,天马行空似懂非懂。返回头看看感觉没学到什么东西,所以还是动手尝试下。实际这个解析器只是sqlite语法的一个create table语法,而且也没完全实现(不支持check约束和指定数据库)。          为了定一个模子我先写了一个create table 的antlr文法(如下)照着做的。 grammar sqlitcreatetable; @members{ private boolean isType(String id){ id=id.toLowerCase(); return id.equals("int")|| ...
   GridView未设置margin、padding容器内出现空隙问题。    花了不少时间查看sdk源码最好才发现是gidview的listSelector中的图片grid_selector_background_xx.9.png 画了可见区域导致的空隙。     解决办法很简单:     android:listSelector="@android:color/transparent"  
    场景:      假设有一个view,在RotateAnimation动画完后需要隐藏掉,但调用 setVisibility 失效。     解决的办法:       view.setAnimation(null),再setVisibility
   ZXing的CaptureActivity在其他activity切换回来时会出现黑屏现象,跟踪发现surfaceDestroyed并不一定能调用到。    在ZXing项目找到zxing不支持tabhost的答复。   Project Member #1 srowen The app doesn't use a TabHost. If you are writing your own app, indeed, you may need to write different code! this part is not a library that is supposed to ...
    假设有一个service类是 AbcSvr在其内有一个static方法供外调用启动自己。 public static void startAbcSvr(Context ctx ) { ctx.startService(new Intent(ctx, AbcSvr.class)); }    在某种情况下回抛出Exception    Exception Ljava/lang/RuntimeException; thrown while initializing Lcom/XXXX/AbcSvr;        应是Dalvik的一个bug。解 ...
Global site tag (gtag.js) - Google Analytics