大家可能知道Bitmap的叠加处理在Android平台中可以通过Canvas一层一层的画就行了,而Drawable中如何处理呢? 除了使用BitmapDrawable的getBitmap方法将Drawable转换为Bitmap外,今天Android123给大家说下好用简单的LayerDrawable类,LayerDrawable顾名思义就是层图形对象。下面直接用一个简单的代码表示: Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.cwj); Drawable[] array = new Drawable[3]; array[0] = new PaintDrawable(Color.BLACK); //黑色 array[1] = new PaintDrawable(Color.WHITE); //白色 array[2] = new BitmapDrawable(bm); //位图资源 LayerDrawable ld = new LayerDrawable(array); //参数为上面的Drawable数组 ld.setLayerInset(1, 1, 1, 1, 1); //第一个参数1代表数组的第二个元素,为白色 ld.setLayerInset(2, 2, 2, 2, 2); //第一个参数2代表数组的第三个元素,为位图资源 mImageView.setImageDrawable(ld); 上面的方法中LayerDrawable是关键,Android开发网提示setLayerInset方法原型为public void setLayerInset (int index, int […]
方法
Android数组排序常见方法 Android开发技术
Android的数组排序方式基本上使用了Sun原生的Java API实现,常用的有Comparator接口实现compare方法和Comparable接口的compareTo方法,我们对于一个数组列表比如ArrayList可以通过这两个接口进行排序和比较,这里Android123给大家一个例子 private final Comparator cwjComparator = new Comparator() { private final Collator collator = Collator.getInstance(); public final int compare(Object a, Object b) { CharSequence a = ((Item) a).sName; CharSequence b = ((Item) b).sID; return collator.compare(a, b); } }; 我们的ArrayList对象名为mList,则执行排序可以调用方法 Collections.sort(mList, cwjComparator);
Android平台下图表绘制相关方法 Android开发技术
很多网友可能会遇到图表绘制等问题,在Android平台下如何我们需要绘制饼图、K线图应该如何处理呢? 在Android平台下绘图的API大多数由Canvas提供类似Win32或Symbian中的DC,提供大量的绘制方法. 对于饼图即PieChart而言,比较简单,首先计算每个区域的百分比,然后通过drawArc方法绘制弧形,方法原型如下: public void drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint) oval The bounds of oval used to define the shape and size of the arc startAngle Starting angle (in degrees) where the arc begins sweepAngle Sweep angle (in degrees) measured clockwise useCenter If true, include the center […]

APK汉化原理及方法 Android开发技术
我们继续上次的APK格式文件分析,本次探讨下有关APK汉化技术,其实对于软件汉化一直都属于比较简单的范畴,对于传统Win32程序或者说PE文件而言,代码被编译成为一个二进制的文件中,通过类似section的方式来区分资源,android平台中将代码逻辑和资源文件进行了分离,字符串被放在了一个名为resources.arsc的文件中,我们将一个apk文件修改后缀名为zip,然后解压缩可以看到如下文件。其中高亮部分就是我们需要的文件如图: 相对于传统软件汉化而言,android apk文件的汉化我们不需要脱壳,不需要修改API导入表,几乎仅仅是字符串替换的体力活,这里我们使用winhex这个十六进制的查看工具来作分析,可以看到加载后显示的文件字符集为ansi,每个偏移十六进制对应的正是原始的字符串,如下图,我们只需要替换即可做到汉化,不过这样看起来还很麻烦,android123会在近期推出一个汉化工具自动包含词库替换英文到中文,相关技术参考 APK文件格式分析,Android反编译入门(一) 文件描述。

