Android
PirateCode
这个作者很懒,什么都没留下…
展开
-
Toolbar自定义布局
Toolbar如何使用想必大家清楚地很,实际开发中标题栏的样式各色各样,因此其基本样式便不能满足我们的需求,这就需要我们自定义布局。打开ToolBar源码我们发现它继承ViewGroup,这就表示我们可以把它当做一个存放控件的容器。 <android.support.v7.widget.Toolbar android:layout_width="match_parent"原创 2016-08-27 13:31:57 · 619 阅读 · 0 评论 -
夜间模式实现方式
1.修改theme:public class BaseActivity extends AppCompatActivity { private boolean isNightMode; private NightModeReceiver mNightModeReceiver; @Override protected void onCreate(Bundle savedIn原创 2016-08-28 19:02:03 · 1574 阅读 · 0 评论 -
Android仿淘宝购物车
最近项目需要实现类似淘宝购物车的功能,仿了一个,直接上代码:public class MainActivity extends Activity implements OnCartListener, View.OnClickListener { private static final boolean DEBUG = true; private static final String原创 2016-08-27 13:35:11 · 1652 阅读 · 0 评论 -
Android性能优化——数据库SQLite
数据库操作: 1.使用事务进行批量数据操作: 数据库操作的本质是对磁盘文件的操作,频繁操作文件是一个耗时操作,影响数据库的存取速度。使用事务会降低数据库文件的开关频率,从而节约操作时间:普通方式:public void insertMemberListNormal(List<MemberModel> memberModelList){ int size = memberModel原创 2016-08-27 13:47:34 · 605 阅读 · 0 评论 -
Android性能优化——Layout的优化
Android开发一般使用xml文件进行布局,在Activity的onCreate方法中调用setContentView(layoutId),实现页面的绘制,如果Layout文件布置不合理就会可能造成加载缓慢和过度绘制。 加载缓慢是因为布局嵌套太多,层级太深,导致xml文件解析速度过慢。如果容器选用不当,会导致多次计算子控件的位置而耗费时间。那如何解决以上问题呢? 1、Android为我们提供了原创 2016-08-27 13:45:58 · 672 阅读 · 0 评论 -
Android性能优化——数据结构的优化
Android性能优化包含很多方面,今天我们来看看对于数据结构如何做优化。 1.集合的遍历操作:private void for1(ArrayList<Model> list){ long start = System.currentTimeMillis(); int len = list.size(); for(int i= 0;i < len;i原创 2016-08-27 13:45:09 · 670 阅读 · 0 评论 -
Serializable与Parcelable区别
Serializable是Java中序列化的接口,主要用于ObjectInputStream和ObjectOutputStream进行对象读写。关于Serializable的相关注意点大概如下:序列化ID,静态变量序列化,序列化存储规则,单例模式序列化等 ①序列化ID:调整类结构后,其serialVersionUID若未修改,反序列化过程中不会报异常,但获取某个属性值时可能会null;seriaV原创 2016-08-27 13:42:50 · 660 阅读 · 0 评论 -
ViewPager取消缓存策略
APP开中经常用到ViewPager+Fragment+FragmentPagerAdapter这样的组合,但ViewPager自带缓存策略,所以每次ViewPager都会预加载下一页的内容,这样就导致滑动ViewPager进行切换时,都是加载的不是当前选项页的数据,而是下一个页面数据。那有没有办法干掉ViewPager的预加载功能,方法当然是有,但必须要将v4包下ViewPager的相关代进行修改原创 2016-08-27 13:41:44 · 2006 阅读 · 0 评论 -
ViewPager 3D翻转
利用PageTransformer实现ViewPager3D翻转 mDensity = getResources().getDisplayMetrics().density; mViewPager.setOffscreenPageLimit(2);//缓存两页,此处必须设置 mViewPager.setPageTransformer(true,newFlipPagerTransformer())原创 2016-08-27 13:40:40 · 568 阅读 · 0 评论 -
ViewPager 指示器
项目需要一个ViewPager的指示器,发现Android联系人中有该控件,于是抽取出来分享给大家:ViewPagerTabs .java:public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener { ViewPager mPager; privat原创 2016-08-27 13:39:55 · 665 阅读 · 0 评论 -
Volley上传文件
Volley上传文件:public class UploadFileRequest extends Request<JSONObject> { public static final String TAG = UploadFileRequest.class.getSimpleName(); private static final String CHARSET = "utf-8"; //原创 2016-08-27 13:38:42 · 502 阅读 · 0 评论 -
Volley上传图片
Volley以流的形式上传图片,参考了某大神代码public class PostUploadRequest extends Request {public static final String TAG = PostUploadRequest.class.getSimpleName();private static final String CHARSET = "utf-8"; //设置编码St原创 2016-08-27 13:37:44 · 512 阅读 · 0 评论 -
RecyclerView 添加头部和尾部,并实现Item的点击事件
RecyclerView是Android中新加入的控件,用来替换ListView和GridView,但在使用时也存在一些不如意的地方,没有Item的点击事件,不能添加头部和尾部,本文就此来实现这些功能: 1.我们先看看ListView是如何添加头部和尾部的,public void addHeaderView(View v, Object data, boolean isSelectable) {原创 2016-08-27 13:36:26 · 717 阅读 · 0 评论 -
Unity3D调用Android系统相册
Android代码:public class MainActivity extends UnityPlayerActivity { private static final String TAG = MainActivity.class.getSimpleName(); private static final int PHOTO_REQUEST_CODE = 1; priva原创 2016-10-23 16:22:00 · 4016 阅读 · 0 评论