Android
文章平均质量分 72
百家晓东
这个作者很懒,什么都没留下…
展开
-
Flutter_29_Flutter性能监控和优化
Flutter、Golang、Python、编译原理、算法、Chrome原理学习系列文章抢先看请关注【码农帮派】:在Flutter中性能问题可以分为GPU线程问题、UI线程(CPU)问题。这两类问题可以通过Flutter提供的性能图层进行定位分析。性能图层(Performance Overlay)Flutter为了帮助开发者定位代码中的性能问题,提供了性能图层,它可以让...原创 2020-02-19 01:35:35 · 1874 阅读 · 0 评论 -
Flutter适配国际化
Flutter、Golang、Python、编译原理、算法、Chrome原理学习系列文章抢先看请关注【码农帮派】:在Flutter中,为了实现文本的国际化,我们需要完成三步: 首先,实现一个LocalizationsDelegate(翻译代理),将所有需要翻译的文案声明为它的属性; 然后,为所有需要支持语言的地区进行手动的文案翻译; 最后,在应用的Mater...原创 2020-02-06 01:47:26 · 1596 阅读 · 0 评论 -
Android Studio安装Flutter i18n插件
Flutter、Golang、Python、编译原理、算法、Chrome原理学习系列文章抢先看请关注【码农帮派】:方法一:打开Android Studio的Preferences,在Plugins中进行安装:在Marketplace中搜索Flutter i18n,点击 Install,就可以完成安装。方法二:要是Android Studio因为网络等原因无法搜索到...原创 2020-02-06 01:43:38 · 1394 阅读 · 1 评论 -
Handler机制详述1---Handler的简介和用法
1.Handler简介 handler是Android系统封装的用于线程更新UI,消息处理的机制。[说明]查看Android Framework源码可以看到,常见的Activity的生命周期onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()都是通过handler发送不同Message,AMS(Ac原创 2016-05-07 18:51:17 · 1593 阅读 · 0 评论 -
Handler机制详述2---Looper,MessageQueue
1. 为什么Android会设计Handler去更新UIHandler根本上是为了解决多线程之间引发的并发问题,在ActivityThread中,要是有多个子线程在没有加锁的情况下更新UI,有可能引发UI显示错乱的现象,但要是对更新UI的操作进行类似synchronized加锁机制的话,会造成性能下降,而Handler允许多线程向一个MessageQueue中押入Message,在UIThre原创 2016-05-08 01:49:16 · 1050 阅读 · 0 评论 -
Handler+Timer/TimerTask实现ViewPager的自动循环播放
ViewPager是android.support.v4中提供的空间,和IOS中的UIScrollView有类似的效果,ViewPager正常工作需要一个PagerAdapter。PagerAdapter.java如下:package com.mxd.studyandroid;import android.support.v4.view.PagerAdapter;import原创 2016-05-08 11:37:21 · 1153 阅读 · 0 评论 -
Activity的生命周期详述
正常情况下,Activity会经历如下的生命周期:onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()onPause():当当前Activity被半遮挡,比如当前Activity上弹出了一个弹窗,则会调用该Activity的onPause()方法;onStop(): 当前Activity被完全遮原创 2016-05-19 21:12:15 · 426 阅读 · 0 评论 -
Activity之间序列化传递Object
Activity之间可以通过Intent和Bundle跳转并传递数据,可以传递的数据类型包括基本数据类型,String以及实现了Parcelable接口或Serializable接口的Object(File实现了Serializable接口):1.Serializable接口是java中定义实现的,无须重写任何方法,但序列化和反序列化的过程中会产生大量中间变量,占用较大的内存2.Parce原创 2016-05-09 18:07:31 · 1682 阅读 · 0 评论 -
Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
关注公众号“码农帮派”,查看更多系列技术文章:原创 2016-06-06 10:55:33 · 317 阅读 · 0 评论 -
ListView显示图片(Volley+ImageRequest+LruCache+DiskCache)
使用Volley+ImageRequest下载图片,并使用LruCache进行内存缓存,同时使用DiskCache进行硬盘缓存:首先是ImageCache的接口:package mxd.com.wxproject.imgList;import android.graphics.Bitmap;/** * Created on 16/6/12. */public interf原创 2016-06-14 21:24:10 · 435 阅读 · 0 评论 -
为什么要使用HandlerThread
关注公众号“码农帮派”,查看更多系列技术文章:在android-sdk/sources/android-x下可以看到源码。在android.os的包下,有一个HandlerThread的类,继承自Thread,是Google提供的线程类。package android.os;public class HandlerThread extends Thread ...原创 2016-07-27 00:24:09 · 3640 阅读 · 0 评论 -
仿手Q空间首页_可渐变的TopBar
关注公众号“码农帮派”,查看更多系列技术文章:首先是模仿效果:项目模仿了手Q空间首页,主要是实现了一个可以随着ListView的滑动,逐渐改变自身Alpha数值的TopBar。使用了View自定义属性,首先需要在res/values/attrs.xml中声明新属性:<?xml version="1.0" encoding="utf-8"?&g...原创 2016-08-04 22:36:48 · 1193 阅读 · 0 评论 -
为什么重写了equals()之后还要重写hashCode()
关注公众号“码农帮派”,查看更多系列技术文章: 我们知道equals()和hashCode()是java Object中两个基本方法,有时候由于业务的需求,需要我们重写equals()方法,比如对于Person类中,业务的需要让我们当Person对象的cardID一致的时候,就认为两个对象equals,此时就需要在Person类中重写equals()方法,如下:...原创 2016-08-05 12:19:54 · 4395 阅读 · 1 评论 -
Android开发查看网络状态
首先需要在AndroidManifest.xml中配置权限: 查看网络状态的工具类NetworkUtils.java :import android.annotation.TargetApi;import android.content.Context;import android.net.ConnectivityManager;原创 2016-08-03 11:36:48 · 1745 阅读 · 0 评论 -
Android自定义控件
下面通过自定义的View创建了一个同心圆的视图:com.mxd.view.BullsEyeView.javapublic class BullsEyeView extends View{ private Paint mPaint; private Point mCenter; private float mRadius; /** * Java构造函数 */ publi原创 2016-05-05 12:04:26 · 266 阅读 · 0 评论 -
Android开发Theme和Style
在xml文件中,当多个控件需要设置相同的属性设置时,可以使用style来避免重复的代码,利于代码的维护:Style属性res/values/styles.xml bold 15dp @dimen/buttonWidth @drawable/bg_btn @color/red 25dip @null @drawable/bg_rad原创 2016-05-04 18:38:34 · 458 阅读 · 0 评论 -
创建并显示视图
在Activity中设置并显示布局:public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);}也可以按照下面的方式动态的添加控件:public void onCreate(Bundle s原创 2016-05-04 21:45:48 · 421 阅读 · 0 评论 -
BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3)
声明:部分动画来源于网络,本人只是想方便收集在一起,如果不妥请及时与我联系!谢谢为了统一BaseAnimationApp签名,一定要方便以后大家自动更新...防止签名冲突,不能及时更新BaseAnimation讨论群号:149581646github下载地址:https://github.com/z56402344/BaseAnimati转载 2015-05-10 13:39:57 · 439 阅读 · 0 评论 -
Android开发获取手机屏幕大小
Android开发获取手机屏幕大小(长宽):DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);int screenWidth = dm.widthPixels;int screenHeight = dm.heightPixels;原创 2015-06-05 11:15:07 · 537 阅读 · 0 评论 -
ScrollView与ListView,ExpandableListView共存
1.ListView与ScrollView共存,可以使用下面的函数来自动调节ListView的大小public static void setListViewHeightBasedOnChildren(ListView listView){ListAdapter listAdapter = listView.getAdapter();if (listAdapter == null)原创 2015-06-06 12:23:03 · 498 阅读 · 0 评论 -
Android开发利用Volley框架下载和缓存网络图片
2013年Google I/O大会上推出了一种新的网络通信框架——Volley,Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的原创 2015-09-04 00:57:28 · 1056 阅读 · 0 评论 -
Android设备的唯一标识
Android设备,由于生产厂家五花八门,各种标示不一定对所有的Android设备都起作用,手机和平板就有区别,为了能够准确的区分不同的Android设备,可以使用下面的类来唯一的标示一个Android设备:UpLoadDeviceToken.javapackage com.mxd.deviceToken;import java.io.InputStream;impor原创 2015-09-03 21:14:41 · 518 阅读 · 0 评论 -
Android开发拨打座机分机号码
Android开发拨打如:021-11111111,分机号码是1111的电话号码时,如下:String phone = "021-11111111";String fenPhone = "1111";IntentphoneIntent = new Intent("android.intent.action.CALL",Uri.parse("tel:" +phone +原创 2015-09-26 16:18:41 · 5083 阅读 · 0 评论 -
Android开发读取assert下的txt文件
在Android工程的assert根目录下存在txt文件test.txt文件,读取内容的办法如下:String content = "加载错误";try{ InputStream is = getAssets().open("test.txt"); int size = is.available(); byte[] buff原创 2015-09-28 15:43:40 · 1593 阅读 · 0 评论 -
Android开发优化-使用BaseActivity
android开发过程中,当每个Activity都具有相同的功能时,我们可以事先写一个BaseActivity,然后让所有的Activity都继承自BaseActivity,下面以Activity之间的切换为例说明这一点:首先是BaseActivity,是一个抽象类,包含了一个setPushType()抽象方法,通过这个方法可以设置Activity切换的动画效果,public原创 2015-12-12 17:28:44 · 1623 阅读 · 0 评论 -
Android开发上传图片到服务器(一.图片选择)
本文和后面一片博文,总结Android开发过程中图片选择并上传至服务器的过程:一.图片选择 包括四种方式:拍照不截图,相册不截图 以及 拍照截图 和 相册截图二.Android客户端的两种图片上传的方式,以及PHP后台接收图片的代码-----------------------------------------------------------------------------原创 2015-12-13 17:47:59 · 5852 阅读 · 1 评论 -
Activity常用跳转效果
Activity的切换需要在startActivity()或finish()函数之后紧跟函数(Fragment开头加getActivity(), 其他的将Context的对象强转为Activity): overridePendingTransition(int enterAnim, int exitAnim); getActivity().overrid原创 2015-11-28 17:40:46 · 642 阅读 · 0 评论 -
Android开发常用的工具类
检测网络是否可用的工具类CheckWebUtil.java[注意]需要下面的权限申明: uses-permissionandroid:name="android.permission.INTERNET"/> <!-- 查看Wi-Fi 状态 --> uses-permissionandroid:name="android.permission.A原创 2015-11-29 00:20:22 · 335 阅读 · 0 评论 -
Android开发网络请求之GET和POST
下面分别使用GET和POST方式从网络后台拉取如下的JSON格式的数据,并在客户端进行解析:{ "code": "200", "message": "Get Success", "result": [原创 2015-11-28 23:49:33 · 809 阅读 · 0 评论 -
Android开发Uri的使用场景
android.net.Uri1.调用web浏览器UriwebUri = Uri.parse("http://www.baidu.com");IntentwebIntent = new Intent(Intent.ACTION_VIEW,webUri);startActivity(webIntent);2.调用地图Uri mapUri =原创 2015-12-03 10:02:04 · 482 阅读 · 0 评论 -
AndroidStudio使用细则
1.在AndroidStudio中查看LogCat,Memory,CPU以及Network情况依次打开:View->Tool Windows->Android Monitor(各种信息提示界面,基本都可以在View->Tool Windows中找到)2.调出Android Device Monitor查看Console,LogCat,Memory,CPU以及Network依原创 2015-12-23 18:33:09 · 2950 阅读 · 0 评论 -
Android开发将List转化为JsonArray和JsonObject
客户端需要将List转化为JsonArray和JsonObject的方法:首先,List中的Object的属性需要是public:class Person{ public String name; public String sex; public int age;}下面假设有List personList = new Arr原创 2016-01-27 10:52:36 · 16235 阅读 · 0 评论 -
Android开发Activity之间传递ArrayList
1.传递ArrayList(此处传递的是ArrayList)ArrayList> class_List = new ArrayList>();intent.putExtra("class_List", class_List);2.接受ArrayList// 获取传递的数据Bundle bundle = getIntent().getExtras();//原创 2015-04-12 16:05:54 · 2730 阅读 · 0 评论