
Android
edwinsnao
这个作者很懒,什么都没留下…
展开
-
canvas.DrawText让文字真正居中显示
canvas.drawColor(getResources().getColor(R.color.colorPrimary)); super.onDraw(canvas); float x = this.getX(); float y = this.getY(); int w = this.getWidth(); in转载 2016-08-28 16:25:13 · 3791 阅读 · 0 评论 -
Android Studio2.2新功能
转载于http://stormzhang.com/2016/09/20/android-studio-2.2转载 2016-12-06 15:57:40 · 255 阅读 · 0 评论 -
gradle命令行快速构建项目
我们知道在github下载别人的项目到android studio编译需要很长时间。但通过gradle命令行来编译则可以省去打开as以及as编译的漫长时间了。可是我在网上看到别人博客写的是gradle :android:assembleDebug --dry-run --debug --stacktrace但是运行后发现上面是错的gradle :app:assemb原创 2016-12-07 15:17:01 · 3503 阅读 · 0 评论 -
百度地图报错原因tried Java_com_baidu_platform_comjni_engine_JNIEngine_initClass and Java_com
No implementation found for int com.baidu.platform.comjni.engine.JNIEngine.initClasstried Java_com_baidu_platform_comjni_engine_JNIEngine_initClass and Java_com网上说是因为so文件放的位置不对,确实是这样如果不想在bui原创 2016-12-08 15:40:26 · 2988 阅读 · 1 评论 -
android获取sha1--一般用于开放平台aipkey的注册
使用命令keytool -list -v -keystore ~/.android/debug.keystore 记录以备以后用到转载 2016-12-08 15:49:02 · 406 阅读 · 1 评论 -
百度地图不显示地址—只有网格
apiKey不正确需要generateSignedApk再用命令keytool -list -v -keystore ~/code/ProMulti/app/android.keystore.jks查看最新的sha1码把这个填到发行版(因为是星号必填)再把keytool -list -v -keystore ~/.android/debug.keystore 填入测试版原创 2016-12-08 16:07:50 · 604 阅读 · 0 评论 -
获取当前显示页面的Activity名字命令
找到一条命令非常利于看别人项目却不知道该Activity是在项目里叫什么名字adb shell dumpsys activity activities | grep mFocusedActivity原创 2016-12-16 11:53:57 · 2344 阅读 · 0 评论 -
在不root手机的情况下读取Data目录下的文件
在网上找资料找了很久,大多都说需要获取root权限才可以获取data/data下的文件后来找到了这种方法确实可行正确使用adb读取data目录下的文件方式[plain] view plain copyshell@android:/data $ run-as com.your.package run-as转载 2016-12-26 11:59:09 · 9678 阅读 · 0 评论 -
scrollview设置view的可见性导致布局错误
今天遇到一个很奇怪的问题,我为了项目的页面可以滚动加入了ScrollView可是我项目需求是点击按钮后需要设置一些view的可见性为gone,然后另一个布局由不可见到可见但是发现改变后布局错误而且是一个view不可见了一开始还以为是fragment的问题,但后来发现不是后去掉scrollview发现正常显示了暂时还没找到scrollview的解决办法原创 2017-01-04 16:49:56 · 1290 阅读 · 0 评论 -
SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)是因为res/raw的文件复制过去之后没有读写的权限参考:http://stackoverflow.com/questions/35090893/sqlitereadonlydatabaseexception-attemp原创 2016-12-29 14:16:47 · 14490 阅读 · 1 评论 -
三星手机ClipboardUIManager内存泄漏
leakCanary检测到ClipboardUIManager内存泄漏通过上网查资料发现如下解决方法:try { /** * 三星手机泄漏内存(editText),我的手机 * */ if ("samsung".equalsIgnoreCase(Build.MANUFACTURER) && Build.VERSION.SDK_转载 2016-12-29 17:11:09 · 1176 阅读 · 0 评论 -
内部的service报错(适用broadcast)
java.lang.InstantiationException: class has no zero argument constructor我为了共享定位信息把locationservice放到activity首先是遇到了找不到service.class的问题Intent里面,mainifest文件声明service也报错,后来发现是需要声明为public。所以我就原创 2016-12-20 15:31:53 · 615 阅读 · 0 评论 -
original thread that created a view hierarchy can touch its views.
今天项目dialog在点击自定义的listview删除按钮后出现报错这个报错本来是三种方法来解决的:分别是1.handler.post+runnable2.handler.sendEmptyMessage并通过handler的handleMessage回调进行相应处理3.runOnUIThread可是我试过三种方法都解决不了这个问题原创 2017-01-11 11:42:58 · 267 阅读 · 0 评论 -
Android Studio开启"DexInProcess"加快编译速度
在module的gradle文件加入dexOptions {maxProcessCount2javaMaxHeapSize"2g"}上面2g+1g配至在gradle.properties里面org.gradle.jvmargs=-Xmx3072m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -转载 2016-12-06 15:43:53 · 1254 阅读 · 0 评论 -
传感器电量优化
/*** 如果设置SENSOR_DELAY_FASTEST会浪费电的* */mSensorManager.registerListener(mSensorEventListener, mStepSensor, SensorManager.SENSOR_DELAY_NORMAL);@Overrideprotected void onDestroy() { super.原创 2016-12-05 10:04:57 · 345 阅读 · 0 评论 -
Mms源码结构
转自oschina:https://www.oschina.net/question/54100_36978从软件的功能角度来讲,Mms分为对话列表,消息列表,短信编辑,彩信编辑,短信显示,彩信显示和配置。从实现的角度来看,它分为GUI展示层,发送/接收,彩信解析,彩信附件,信息数据等,这些分类对应着源码中的各种包。源码导航Mms的源码的位置在于android/转载 2016-11-30 14:56:38 · 512 阅读 · 0 评论 -
Android listview和gridview获取当前xy坐标是第几个item
之前我是通过算item的大小和xy比较来计算出是第几个item的,但是比较麻烦后来通过查阅文档和资料,发现有一个API方法是pointToPosition(int x,int y);只要把getX和getY的值传入即可注意!!不要用getRawX和getRawY(因为这两个是相对整个屏幕的坐标的)原创 2016-08-31 09:43:43 · 4056 阅读 · 0 评论 -
自定义TextView处理任意时间长按短按的事件
import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.widget.TextView;import android.wid原创 2016-08-25 16:40:37 · 1890 阅读 · 0 评论 -
Android alertDialog
调用了show之后再调用dismiss再show不会有变化。还是之前的dialog对象另外dismiss和hide区别:dismiss和cancel是销毁用的hide是隐藏,不会导致dialog的配置丢失所以如果想刷新dialog的方法:1.重新创建dialog2.调用dialog.textView(等对应的view).set进行设置原创 2016-11-06 16:11:47 · 195 阅读 · 0 评论 -
Adapter调用notifyDataSetChanged后listview不刷新
/*** 如果这样直接赋值,检测不到mDatas的数据变化 * 所以notifydatasetchanged并不会有listview数据的变化刷新* */mDatas = mTraceDao.searchData(tag);mDatas.addAll(mTraceDao.searchData(tag));handler.sendEmptyMessage(0);原创 2016-11-06 16:12:31 · 327 阅读 · 0 评论 -
mac proguard混淆打包
到proguard官网上下载源码,修改源码中src->proguard->classfile中得ClassConstants.java文件把文件中第151行中得ATTR_StackMap属性StackMap修改为dummp。保存,然后就可以开始重新编译为jar做准备了重新编译可以使用多种方式,我这里使用ant进行重新编译,具体我就不多说,可以参考这篇blog,里转载 2016-11-06 22:59:58 · 1446 阅读 · 0 评论 -
WebView内存泄漏解决方法
销毁webview的方式从mWebView.removeAllViews();/**、* 这里内存泄漏了,因为它的父容器在退出前没有被销毁,所以就会持有引用,内存泄漏* */// mWebView.destroy();改为在 Android 5.1 系统上,在项目中遇到一个WebView引起的问题,每打开一个带webview的界面,退出后,这个act转载 2016-11-07 20:22:26 · 3969 阅读 · 4 评论 -
SQLite同时读报错null pointer openOrCreateDatabase(java.lang.String, int, android.database.sq
publicNewsItemDao(Context context){dbHelper=newDBHelper(context);// dbHelper = application.getDBHelper();}因为不支持同时读写,所以如果需要多个一起同时进行读写数据库的话,就不可以只用一个application新建的DBHelper对象,而需要ne原创 2016-10-03 16:51:03 · 2273 阅读 · 0 评论 -
Viewpager优化流畅度/内存
发现了viewpager的apisetOffscreenPageLimit(5);我这里设置了5,是因为我要加载5个fragment里面的数字参数设置你需要加载的fragment即可这样可以提高流畅度,但是需要消耗更多的内存,因为全部都预加载到了内存如果想节省内存,则可以把里面的参数设置为0原创 2016-10-03 17:46:52 · 1898 阅读 · 1 评论 -
listView监听上下滑动事件
OnScrollListener 的 onScroll() 有一个 firstVisibleItem 参数(第二个参数),向下滑动会越来越大,向上滑动就会越来越小,可以在滑动的时候存储一下这个值,然后再与当前值进行判断另外也可以通过view.getLastVisiblePosition() 判断,这个返回的则是屏幕底部。/*** 下滑,list往上滚动* */if(原创 2016-11-09 21:09:53 · 721 阅读 · 0 评论 -
代码混淆后出现listview的item不显示只有一条横线
原因是Gson还有实体被混淆了。-dontwarncom.google.gson.**-dontwarncom.example.fazhao.homework.model.UserEnity-keepclass org.apache.http.** { *;}-keepclass com.google.gson.** { *;}-keepclass原创 2016-10-20 19:41:10 · 620 阅读 · 0 评论 -
对话框创建新方式showDialog和DialogFragment
创建对话框 一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能. Android API 支持下列类型的对话框对象: 警告对话框 AlertDialog: 一个可以有0到3个按钮, 一个单选框或复选框的列表的对话框. 警告对话框可以创建大多数的转载 2016-11-30 10:47:11 · 678 阅读 · 0 评论 -
adb命令行查询content-provider
adb shell content delete --uri content://settings/settings/pointer_speedadb shell content query --uri content://settings/settingsadb shell content insert --uri content://settings/secure --原创 2016-11-30 11:24:34 · 11666 阅读 · 0 评论 -
SwitchPreference遇到的坑及解决
项目中使用到switchPreference但是遇到的问题是当我设置setOnPreferenceClickListener时,只有点击整个preference才会响应onclick里面自己写的代码而如果是点击switch的按钮则不会响应所以我又设置了setOnPreferenceChangeListener,可以了但是这里遇到一个坑导致一直以为是set原创 2017-01-22 10:36:54 · 5969 阅读 · 0 评论