![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
外柔内刚
这个作者很懒,什么都没留下…
展开
-
android中判断网络是否可用
public static boolean isOpenNetwork(Context context){ if(context!=null){ ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);原创 2015-09-06 10:22:33 · 336 阅读 · 0 评论 -
安卓编译工具
现在大多数我们编译安卓程序都是在eclipse中直接编译运行的。但是在安卓sdk中有个ant工具也可以实现确保在sdk/tools和platform-tools目录包含在可执行文件的搜索路径中确保ant插件已安装并且正常运行切换到项目目录中执行命令:$ android update project -p接下来就可以编译了$ ant projiectname$ adb i原创 2014-12-21 19:17:11 · 534 阅读 · 0 评论 -
android应用分析
第1部分: Android是如何管理内存的Android并没有为内存提供交换区(Swap space),但是它有使用paging与memory-mapping(mmapping)的机制来管理内存。这意味着任何你修改的内存(无论是通过分配新的对象还是去访问mmaped pages中的内容)都会贮存在RAM中,而且不能被paged out。因此唯一完整释放内存的方法是释放那些你可能hold原创 2015-09-17 09:33:02 · 368 阅读 · 0 评论 -
Can not perform this action after onSaveInstanceState
今天使用Fragment的时候,出现了这个错误 IllegalStateException: Can not perform this action after onSaveInstanceState:E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform th原创 2015-09-20 16:02:38 · 397 阅读 · 0 评论 -
android studio导入so文件
1) 在硬盘任意位置建立空文件夹 "lib" (注意名字是 "lib" 而不是 "libs" )2) 把原来的 libs 目录下的 armeabi 文件夹拷贝至 刚建立的 lib 目录下. (armeabi文件夹中的.so文件也会被一并拷入)3) 将刚建立的 "lib" 目录打包压缩成 .zip 文件, 同时改名为 “armeabi.jar"4) 将 armeabi.jar 放入原来的原创 2015-10-11 16:55:27 · 410 阅读 · 0 评论 -
The content of the adapter has changed but ListView did not receive
主要原因就是你List数据变化了 但是没有通知adapter去notify在修改bug的过程中,看到一个bug;里面的异常日志是:java.lang.IllegalStateException:The content of the adapter has changed but ListView did not receive anotification. Make sure the原创 2015-11-26 08:55:19 · 433 阅读 · 0 评论 -
android:documentLaunchMode
android:documentLaunchModeintoExisting:activity 会为该document请求一个已经存在的task,这与 设置FLAG_ACTIVITY_NEW_DOCUMENT 且不设置 FLAG_ACTIVITY_MULTIPLE_TASK 有相同的效果always:ctivity 会为该document创建一个新的task,即使该document已经被打开了,这与原创 2016-05-10 13:06:28 · 2348 阅读 · 1 评论 -
在可滑动列表(ListView & RecyclerView)中实现视频播放
Facebook:Instagram:Magisto这篇文章里的技术是基于VideoPlayerManager这个开源类库的。类库包含所有的代码以及一个示例。我在这篇文章里会跳过一些东西,所以如果要搞清楚某个细节,那最好还是把源码导入IDE然后再看这篇文章吧。就算你不看源码,这篇文章还是可以让你理解我以何种方式解决了什么问题。两个问题原创 2016-05-10 20:13:54 · 2843 阅读 · 0 评论 -
android判断手机有没有安装微博
public static boolean isWeiboInstalled(@NonNull Context context) { PackageManager pm; if ((pm = context.getApplicationContext().getPackageManager()) == null) { return fa原创 2016-05-11 17:40:56 · 2096 阅读 · 0 评论 -
android inputtype属性
android:inputType="none" android:inputType="text" android:inputType="textCapCharacters" 字母大写 android:inputType="textCapWords" 首字母大写 android:inputType="textCapSentences" 仅第一个字母大写原创 2016-05-11 17:45:11 · 247 阅读 · 0 评论 -
android 设置edittext最大值输入并且提示
public class LengthFilter implements InputFilter { public LengthFilter(int max) { mMax = max; } @Override public CharSequence filter(CharSequence source原创 2016-05-11 17:46:48 · 886 阅读 · 0 评论 -
轻松反射
https://github.com/jOOQ/jOOR原创 2016-05-11 17:48:16 · 300 阅读 · 0 评论 -
viewpager 小技巧
1、在ViewPager中默认加载当前屏幕上的界面和左右相邻界面的数据从而实现页面滑动的快速切换。可以通过调用setOffscreenPageLimit(int)方法,定制预加载相邻页面的数目。 2、FragmentStatePagerAdapter与FragmentPagerAdapter基本相同,唯一的区别就是二者在卸载不再需要的fragment时所采用的处理方法不同。 使用Fragm原创 2016-05-11 17:51:38 · 207 阅读 · 0 评论 -
用Gradle构建时,将密码等敏感信息放在build.gradle之外
密码 在做版本release时你app的 build.gradle你需要定义 signingConfigs.此时你应该避免以下内容:不要做这个 . 这会出现在版本控制中。signingConfigs { release { storeFile file("myapp.keystore") storePassword "password12转载 2016-05-11 17:54:27 · 1626 阅读 · 0 评论 -
Android应用内截屏
Android应用内截屏 并去掉通知栏public int getStatusBarHeight() {int result = 0;int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");if (resourceId > 0) { result = getResour原创 2016-05-25 08:33:22 · 435 阅读 · 0 评论 -
RxJava flatmap
RxJava flatmapflatMap() 中返回的是个 Observable 对象,并且这个 Observable 对象并不是被直接发送到了 Subscriber的回调方法中。 flatMap() 的原理是这样的:1. 使用传入的事件对象创建一个 Observable 对象;2. 并不发送这个 Observable, 而是将它激活,于是它开始发送事件;3. 每一个创建出来的 Observabl原创 2016-05-12 13:11:45 · 692 阅读 · 0 评论 -
RxJava-操作符 初步学习
Rxjava操作符mergeDelayError:合并几个不同的observablesample:每隔一段时间进行采样,在时间间隔范围内获取最后一个发布的observableflatmap :把某一个observable转换成另一个observable创建observalbeObservalbe.from Observable.create Observable.justObservable转换操作原创 2016-05-01 17:19:53 · 464 阅读 · 0 评论 -
RxJava组合操作符
RxJava组合操作符comebineLatest操作符 combineLatest操作符把两个Observable产生的结果进行合并,合并的结果组成一个新的Observable。这两个Observable中任意一个Observable产生的结果,都和另一个Observable最后产生的结果,按照一定的规则进行合并。Observable<Long> observable1 = Observabl原创 2016-05-01 18:27:07 · 267 阅读 · 0 评论 -
Glide使用
Glide使用Glide解决什么问题Glide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗。Glide.with(context).load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg")原创 2016-05-26 12:28:35 · 335 阅读 · 0 评论 -
Design 控件学习
Design 控件学习design控件TextInputLayoutTabLayoutSnakeBarFloatingActinoButtonNavigationViewAppBarLayoutCoordinatorLayoutCollaspingToolbarLayout代码TabLayout<android.support.design.widget.TextInputLayo原创 2016-05-02 15:33:24 · 264 阅读 · 0 评论 -
onActivityForResult
onActivityForResult Intent intent = new Intent(this,SecondActivity.class) startActivity(intent);这样写法等同于startActivityForresult(intent,-1)一般我们启动另外一个activity又希望另一个activity给前一个activity返回数据我们就要用到这个方原创 2016-05-14 15:28:30 · 369 阅读 · 0 评论 -
隐藏输入法
隐藏输入法 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);原创 2016-05-14 15:30:31 · 209 阅读 · 0 评论 -
Android ListView 小技巧
Android ListView 小技巧使用listView时宽高应设置为match-parent 或者固定高度ListView 控件在设计上采用了只创建并显示当前屏幕中的列表项的布局对象(该布局对象由BaseAdapter.getView方法的convertView参数保存)。原创 2016-05-14 15:36:37 · 218 阅读 · 0 评论 -
Android 自定义checkbox样式
Android 自定义checkbox样式1.首先在drawable文件夹中添加drawable文件checkbox_style.xml。<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawab原创 2016-05-14 15:38:50 · 288 阅读 · 0 评论 -
Android 一键生成Parcelable
Android 一键生成Parcelable在插件中搜索Android Parcelable Code Generator用法右击generate选择parcel即可原创 2016-05-14 15:40:55 · 847 阅读 · 0 评论 -
Android 自定义SnakeBar
Android 自定义SnakeBar先自定义布局<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height=原创 2016-05-14 15:45:48 · 2092 阅读 · 0 评论 -
android onUserLeaveHint和onUserInteraction
android onUserLeaveHint和onUserInteractiononUserLeaveHint 当用户的操作使一个activity准备进入后台时,此 方法会像activity的生命周期的一部分被调用。例如,当用户按下 Home键, Activity#onUserLeaveHint()将会被回调。但是当来电导致来电activity自动占据前台,Activity#on原创 2016-05-14 19:26:54 · 9241 阅读 · 0 评论 -
android:textIsSelectable
android:textIsSelectable="true"的意思为文本是否可以复制,如果是true可以复制如果是false不可以复制。原创 2016-05-15 10:12:03 · 911 阅读 · 0 评论 -
Android view中的requestLayout和invalidate方法
Android view中的requestLayout和invalidate方法requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法。invali原创 2016-05-15 13:03:41 · 202 阅读 · 0 评论 -
Gradle升级报错
Gradle升级报错我从1.4 升到2.1碰到了Execution failed for task ':app:clean'. Unable to delete file解解办法就是在moudle build中加入task clean(type: Exec) {ext.lockhunter = '\"C:\\LockHunter.exe\"'def buildDir = file(new Fi原创 2016-05-28 15:42:51 · 549 阅读 · 0 评论 -
Android oncreate中获取控件宽高
Android oncreate中获取控件宽高protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); View view = findViewById(R.id.main_my_view); view.原创 2016-05-28 19:06:33 · 326 阅读 · 0 评论 -
androidstudio获取本机keystore
获取keystore原创 2016-05-05 14:18:11 · 272 阅读 · 0 评论 -
判断sqlite 是否存在表
判断sqlite 是否存在表Cursor cursor = null; try { boolean result = false; String sql = "select count(*) as c from sqlite_master where type ='table' and name ='" + tabName.trim() + "' ";原创 2016-05-30 20:01:48 · 502 阅读 · 0 评论 -
解决了在Android原生TextView中,当text长度小于hint时,TextView右方会占据多余的位置
解决了在Android原生TextView中,当text长度小于hint时,TextView右方会占据多余的位置public class SmartHintTextView extends TextView {private CharSequence mSmartHint;public SmartHintTextView(Context context) { super(context);原创 2016-05-07 19:05:00 · 518 阅读 · 0 评论 -
Android保存Bitmap到文件
Android保存Bitmap到文件public static boolean saveBitmap(Bitmap bitmap, File file) { if (bitmap == null) return false; FileOutputStream fos = null; try { fos = new FileOutputStrea原创 2016-05-31 12:40:27 · 1760 阅读 · 0 评论 -
Android获得小图
public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { int h = options.outHeight; int w = options.outWidth; int inSampleSize =原创 2016-05-31 12:41:34 · 280 阅读 · 0 评论 -
Android调用系统裁剪
Android调用系统裁剪public static Intent buildImageGetIntent(Uri saveTo, int aspectX, int aspectY, int outputX, int outputY, boolean returnData) { Log.i(TAG,原创 2016-05-31 12:46:09 · 837 阅读 · 0 评论 -
Android bitmap drawable转换
Android bitmap drawable转换 bitmap转drawablepublic static Drawable bitmapToDrawable(Bitmap bitmap) { return bitmap == null ? null : new BitmapDrawable(bitmap);}drawable 转bitmappublic static Bitmap原创 2016-05-31 12:47:38 · 276 阅读 · 0 评论 -
Android bitmap bytearray转换
Android bitmap bytearray转换 bitmap转bytepublic static byte[] bitmapToByte(Bitmap b) { ByteArrayOutputStream o = new ByteArrayOutputStream(); b.compress(Bitmap.CompressFormat.PNG, 100, o); re原创 2016-05-31 12:51:20 · 952 阅读 · 0 评论 -
Android 获取屏幕显示信息
Android 获取屏幕显示信息 public static DisplayMetrics getDisplayMetrics(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); return dm;}原创 2016-05-31 12:53:14 · 2034 阅读 · 0 评论