标签‘android’

Android Studio …aapt.exe” finished with non-zero…解决

升级Android Studio为2.2.2之后,旧项目编译出错,Android编译时出现如下错误

Error:Execution failed for task ':app:processAndroid360XmDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\Develop\Android\sdk\build-tools\21.0.0\aapt.exe'' finished with non-zero exit value -1073741819

搜索良久,很多做法都试了不好使,偶然间发现有人说可能使用JDK8的缘故,果断切JDK7尝试,尝试结果是根本切不回去,Android Studio 2.2.2提示使用JDK 8或者更新的版本。 查看更多...

安卓Adapter中getView方法重复执行及索引错位问题解决

Android开发中,经常会用到ListView,当然,也会用到Adapter为ListView绑定数据。通常,我们采用继承BaseAdapter并实现getView等方法的方式为ListView渲染数据,ListView中每个元素都会去调用getView做渲染。但是,如果ListView要展示数据非常庞大,创建成百上千个View是不可取的,于是乎,Android为我们提供了一套Recycler机制,可以重复利用已创建的View,降低对象开销。

原理如下:

在一个完整的ListView第一次出现时,每个Item都是null的,getView的时候会跑到需要inflate一个Item的代码段,假设整个view只能最多显示10个item,那么当滑动到第11个Item的时候,第一个item会放入"recycler",如果第11个Item和放入"Recycler"的item的view一致,那么就会使用"Recycler"里面的Item来显示,从而不用再重复inflate一次。

图示如下:

adapter-recycler
查看更多...

Android View动画进行中事件无效解决方法

Android View动画运行时,在运动的View上绑定的事件将不能被触发,因为诸如点击事件等,触发点是绑定在View控件初始化时所在位置的点击,当动画移动后点击坐标就发生了改变,通过查询一些资料,了解到,Android 3.0以下,动画存在问题,它只移动了View绘制显示的地方,却没有移动View的物理位置,具体底层实现大家可以看源代码了解,我不大清楚底层,这里就不多说了,下面说说简单的解决方法。

只需继承父级布局,覆盖onTouchEvent(或者其他需要捕获的事件)。这里我以FrameLayout为例,因为要捕获点击事件,实现onTouchEvent,然后通过获取当前点击坐标计算出当前点击范围内包含的View控件,找到第一个就直接触发该View的事件,然后break,示例代码如下: 查看更多...

离线更新Android Studio

手动更新适合以下场景:
1. 目前版本与Gradle版本不一致。
2. 错误 IllegalStateException: Can’t deserialize target data of key ‘IdeaAndroidProject’.
Given class loaders: [PluginClassLoader[org.jetbrains.android, 10.0]]:
3. 新建工程出错,在线更新更新失败。
4. 无外网,不能在线更新。

我们采用离线更新的方法解决:

1.获取安装的Android Studio 的Build Number
如果已经安装了Android Studio,那么我们只需要增量更新即可。所以下载更新jar包即可,首先要知道自己当前的Android Studio的版本号,Help-》About。

Build #AI-135.1404660 135.1404660即为版本号 查看更多...

Android应用软件反编译还原工程全解

android
众所周知,Android应用层软件是使用Java语言开发的,而Android的安装文件*.apk则是将Java编译后的*.class文件打包成*.Jar后再打包classes.dex文件,最后打包成*.apk发布。找到封装步骤,想反编译应该不难。这里介绍Windows环境下进行反编译的全过程。

说明:反编译不是为了破解,而是为了更好的学习,通过反编译可以更好的借鉴成熟软件的可取之处。

反编译Android应用来还原Android工程,其实很简单,这里分为两个步骤。 查看更多...

Android中View与SurfaceView的区别要点

首先介绍一下View类,View类是android的一个超类,每一个View都有一个用于绘画的画布,这个画布可以进行任意的扩展。有的时候我们需要自定义VIew实现自己想要的视图。view、SurfaceView是游戏开发中经常用到的视图。

View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。

SurfaceView:基于view视图进行拓展的视图类,更适合2D游戏的开发;是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快。 查看更多...

Android程序与服务器大容量数据交互问题

对于目前的状况来说,移动终端的网络状况没有PC网络状况那么理想。在一个Android应用中,如果需要接收来自服务器的大容量数据,那么就不得不考虑客户的流量问题。本文根据笔者的一个项目实战经验出发,解决大容量数据的交互问题,解决数据大小会根据实际情况动态切换问题(服务器动态选择是否要压缩数据,客户端动态解析数据是否是被压缩的),还有数据交互的编码问题。

解决数据过大的问题,最直观的方法就是压缩数据。服务器将需要传递的数据先进行压缩,再发送给Android客户端,Android客户端接收到压缩的数据,对其解压,得到压缩前的数据。

如果规定Android客户端和服务器的交互数据必须是经过某种压缩算法后的数据,那么这种“规定”失去了视具体情况而定的灵活性。笔者拟将Http协议进行封装,将动态的选择传输的数据是否要经过压缩,客户端也能动态的识别,整理并获得服务器想要发送的数据。Android客户端向服务器请求某个方面的数据,这个数据也许是经过压缩后传递比较合适,又也许是将原生数据传递比较合适。 查看更多...

Android图形系统中形状Drawable使用详解

当你想动态画二维图形,ShapeDrawable对象是可能是你合适的选择.使用ShapeDrawable,你可以随意画出原始的形状并且应用到任何风格.

ShapeDrawable是一个Drawable的派生类,所以你可以用于任何想使用Drawable的地方—比如可能是一个View的背景,通过setBackgroundDrawable()所设置.当然,你也可以把你的形状作为它自己的自定义View绘制,然后以你喜欢的方式添加到你的Layout.因为ShapeDrawable有它自己的draw()方法,你可以创建一个View的子类然后在View.onDraw()的方法中画这个ShapeDrawable. 查看更多...

Android图形系统中Drawable使用详解

Android提供了一个自定义的2D图形库来绘制图像和图像.在android.graphics.drawable包中你就可以找到这些用于2维绘画的通用类.

本文讨论使用Drawable对象来作画的基础知识以及如何使用一对Drawable类的派生类.
Drawable是通常指的那种可以作画的东西的抽象.你将发现Drawable类扩展出了很多特定的可绘图形类,包括BitmapDrawable,ShapeDrawable,PictureDrawable,LayerDrawable,等等.当然,你也可以从它们派生出你自己的类来定义你自己的Drawable对象,当然以你独有的方式来表现.

有三种方法来定义并实例化一个Drawable:使用一个保存在你的项目资源中的图像;使用一个定义了Drawable属性的XML文件;或使用普通的类对象构造方式.下面,我们将讨论前两种方式(类对象构就是new出一个对象,傻子都知道,所以不说了).

从资源中的图像创建 查看更多...

Android图形系统中Canvas使用详解

当写一个应用时,恰当的决定你的图形需求是很重要的.不同的图形任务对应不同的技术.例如,一个静态应用的图形和动画的实现肯定与一个交互式游戏非常不同.这里,我们将讨论一些在android上绘制图形时的操作以及它们最适合应用的任务.

Canvas和Drawable
Android提供了一系列View部件来为大多数用户界面提供通常的功能.你也可以扩展这些部件来修改它们的外观和行为.另外,你可以使用Canvas类的方法来绘制你自己的2D显示或为那些像纹理按钮或逐帧显示的动画之类的东西或创建Drawable对象.

硬件加速
从Android3.0开始,你可以硬加速大多数以CanvasAPI完成的绘画工作来大幅提高它们的性能.

OpenGL
Android支持OpenGLES 1.0和2.0,Android框架API和(NDK)都同样支持. 查看更多...

无觅相关文章插件,快速提升流量