Android-基础
疾驰的风景
sql java python
展开
-
Android 存储方式
1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据使用SharedPreferences存储数据适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等、解锁口 令密码等原创 2016-08-05 10:15:33 · 263 阅读 · 0 评论 -
RecycleView简单使用
什么是RecyclerViewRecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView、Palette等。看名字我们就能看出一点端倪,没错,它主要的特点就是复用。我们知道,Listview中的Adapter中可以实现ViewHolder的复用。RecyclerView提供了一个耦合度更低的方式来复用ViewHolder,并且可以轻松的原创 2016-10-09 17:44:12 · 419 阅读 · 0 评论 -
Android中Bitmap
api地址加载资源图片(通过BitmapFactory获取)Bitmap不能new(不用jni情况下),用BitmapFactory获得bitmap//这里先不用BitmapFactory.Options Bitmap bitmap= BitmapFactory.decodeResource(getActivity().getResources(),R.mipmap.jinsixiong);原创 2016-10-12 14:54:16 · 250 阅读 · 0 评论 -
bitmap的createBitmap
可以对bitmap操作1.public static Bitmap createBitmap (Bitmap src) 从原位图src复制出一个新的位图,和原始位图相同2.public static Bitmap createBitmap (int[] colors, int width, int height, Bitmap.Config config) 这个函数根据颜色数组来创建位图,注意转载 2016-10-12 15:42:35 · 4515 阅读 · 0 评论 -
在子线程中new一个Handler
handler的作用是线程间通信 那么在子线程中new一个handler就是要有其他线程想要和他通信如果直接newThread thread=new Thread(){ @Override public void run() { super.run(); handler=new Handl原创 2016-10-24 14:33:15 · 3860 阅读 · 0 评论 -
Java(Android)线程池
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。 newSingleThreadExecutor 创建一个单线原创 2016-10-24 16:54:54 · 218 阅读 · 0 评论 -
Android 属性动画理解
所谓属性动画在我的理解就是: 1、修改对象的属性 2、形成动画效果先说第一点: 修改对象属性 tv=(TextView) findViewById(R.id.textview); tv.setTranslationX(100f); ‘ 最简单的程序,R.id.textview就是Hello World!,这个setTranslationX(100f)就是将他平移到x轴100f的原创 2016-10-26 10:29:42 · 279 阅读 · 0 评论 -
Android 关于Activity中存储数据的问题
程序异常退出onSaveInstanceState()一:怎么用(注意后面的参数) onSaveInstanceState()方法保存数据 @Override public void onSaveInstanceState(Bundle outState) { outState.putInt(TAG, 123); Log.i(TAG, "onSaveIns原创 2016-11-02 16:27:15 · 349 阅读 · 0 评论 -
Android 屏幕适配笔记(基础概念)
概念屏幕尺寸含义:手机对角线的物理尺寸 单位:英寸(inch),1英寸=2.54cm Android手机常见的尺寸有5寸、5.5寸、6寸等等屏幕分辨率含义:手机在横向、纵向上的像素点数总和 一般描述成屏幕的”宽x高”=AxB 含义:屏幕在横向方向(宽度)上有A个像素点,在纵向方向 (高)有B个像素点 例子:1080x1920,即宽度方向上有1080个像素点,在高度方向上有1920个像素点原创 2016-11-07 17:01:50 · 270 阅读 · 0 评论 -
MVP模式
MVP,全称 Model-View-PresenterMVC和MVP 理论上的区别 MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Cont原创 2016-10-28 13:48:25 · 439 阅读 · 0 评论 -
Fragemnt+ViewPager懒加载
什么叫懒加载就是当你需要的时候才去加载为什么要用懒加载fragment放在viewPager里面,viewpager会帮我们预先加载一个,但是当我们要看fragment里面的内容时,我们也许只会去看第一个,不会去看第二个,如果这时候不去实现fragment的懒加载的话,就会多余的去加载一些数据,造成用户多消耗流量。两种思路viewpager不去预先加载另一个(不修改源码不能实现,未去实现)当fr原创 2016-10-07 21:08:06 · 668 阅读 · 0 评论 -
Android 自定义权限
android 中我们可以在Manifest文件中定义自己的权限uses-permission标签用于向Android 系统申请权限permission标签用于在Android 系统中注册新权限<--用permission标签注册一个权限--><permission android:name="paul.permission.TEST" android:descri原创 2016-11-10 18:05:09 · 275 阅读 · 0 评论 -
Android 隐式调用详解(Action)
要通过Action调用某个Activity代码如下: //隐式调用代码片段 Intent intent=new Intent(); intent.setAction("com.ex.wy"); startActivity(intent);*如果这个手机中都找不到这个Action就会报错xml中代码 下面的 <category and原创 2016-10-20 15:41:14 · 2013 阅读 · 0 评论 -
Android 隐式调用详解(Category)
隐试调用代码(Category) Intent intent=new Intent(); intent.setAction("com.ex.wy3"); // intent.setAction("com.ex.wy"); intent.addCategory("com.ex.wy123"); startActivity(intent);原创 2016-10-20 15:57:17 · 758 阅读 · 0 评论 -
Android 广播(让其他应用无法接收)
android 广播实现让其他应用无法接受的广播有两种方法:本地广播为广播添加权限本地广播本地广播: 只在程序内部进行传递的广播,发送和接收都只在本程序有效。 示例代码:public class MainActivity extends AppCompatActivity { private IntentFilter intentFilter; private Lo原创 2016-11-17 11:02:08 · 2995 阅读 · 0 评论 -
SwipeRefreshLayout+RecycleView下拉刷新
SwipeRefreshLayout:谷歌一个下拉刷新控件方法1、setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener):设置手势滑动监听器。2、setProgressBackgroundColor(int colorRes):设置进度圈的背景色。3、setColorSchemeResources(int… colorR原创 2016-10-10 15:26:27 · 272 阅读 · 0 评论 -
Retrofit基础用法
这里只是写没有经过任何封装的retrofit Retrofit retrofit=new Retrofit.Builder() .baseUrl("https://api.douban.com/v2/movie/")//绝对路径url .addConverterFactory(ScalarsConverterFactory.create原创 2016-09-23 17:56:15 · 293 阅读 · 0 评论 -
Android Fragment
其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。在Android3.0的时候被引入,它的出现主要是给大屏幕设备提供更加灵活的UI支持。通过对Activity布局进行分片,更加方便的对每块进行独立控制。这些片段可以被不同的activity复用。fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修原创 2016-08-05 15:31:01 · 265 阅读 · 0 评论 -
Android Activity总结
Activity概念Activity是Android组件中最基本也是最为常见用的四大(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContent原创 2016-08-04 10:57:36 · 241 阅读 · 0 评论 -
Android Handler Message Looper
Handler机制作用handler是android中专门用来在线程之间传递信息类的工具。当应用程序启动时,会开启一个主线程(也就是UI线程),由它来管理UI,监听用户点击,来响应用户并分发事件等。所以一般在主线程中不要执行比较耗时的操作,如联网下载数据等,否则出现ANR错误。所以就将这些操作放在子线程中,但是由于AndroidUI线程是不安全的,所以只能在主线程中更新UI。Handler就是用来原创 2016-08-08 13:05:30 · 566 阅读 · 0 评论 -
AsyncTask介绍,及与Thread对比
AsyncTask介绍Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理。 首先明确Android之所以有Handler和AsyncTask,都是为了不阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的。Android为了降低这个开发难度,提供了AsyncTask。AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。A原创 2016-08-08 14:43:56 · 298 阅读 · 0 评论 -
Android 缓存
二级缓存机制: 一级缓存(内存)、二级缓存(磁盘文件)为什么要缓存通过对图像的缩放,我们做到了对大图的异步加载优化,但是现在的App不仅是高清大图,更是高清多图,动不动就是图文混排,以图代文,如果这些图片都加载到内存中,必定会OOM。因此,在用户浏览完图像后,应当立即将这些废弃的图像回收,但是,这又带来了另一个问题,也就是当用户在浏览完一次图片后,如果还要返回去再进行重新浏览,那么这些回收掉的图像原创 2016-08-08 16:35:29 · 307 阅读 · 0 评论 -
Android 动画
Android的animation由四种类型组成alpha、scale、translate、rotate (渐变、伸缩、移动、转移)XML配置文件中 alpha : 渐变透明度动画效果 scale : 渐变尺寸伸缩动画效果 translate : 画面转换位置移动动画效果 rotate : 画面转移旋转动原创 2016-08-09 11:22:56 · 211 阅读 · 0 评论 -
Android Json 解析
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。MVC模式中的Model–>数据J原创 2016-08-09 14:11:08 · 269 阅读 · 0 评论 -
Android中的MVC设计模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分原创 2016-08-09 17:41:29 · 466 阅读 · 0 评论 -
Android 联网操作(HttpURLConnection用法)
HttpClientDefaultHttpClient和它的兄弟AndroidHttpClient都是HttpClient具体的实现类、它们都拥有众多的API、而且实现比较稳定、bug数量也很少、但同时也由于HttpClient的API数量过多、使得我们很难在不破坏兼容性的情况下对它进行升级和扩展、所以目前Android团队在提升和优化HttpClient方面的工作态度并不积极HttpURLConn原创 2016-08-10 14:18:59 · 1035 阅读 · 0 评论 -
Android 内存泄露 和 Handler内存泄露 整理
Java内存泄露 出自:http://blog.csdn.net/seelye/article/details/8269705 一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完原创 2016-08-23 10:17:25 · 239 阅读 · 0 评论 -
线程挂起,阻塞,休眠理解
首先这些术语都是对于线程来说的。对线程的控制就好比你控制了一个雇工为你干活。你对雇工的控制是通过编程来实现的。 挂起线程的意思就是你对主动对雇工说:“你睡觉去吧,用着你的时候我主动去叫你,然后接着干活”。 使线程睡眠的意思就是你主动对雇工说:“你睡觉去吧,某时某刻过来报到,然后接着干活”。 线程阻塞的意思就是,你突然发现,你的雇工不知道在什么时候没经过你允许,自己转载 2016-08-23 10:48:07 · 2996 阅读 · 0 评论 -
Android View之onMeasure流程
测量——onMeasure():决定View的大小Measure(): @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //这里传入的widthMeasureSpec,heightMeasureSpec 要经过 //MeasureSpec类的处理,如果仅仅不能只原创 2016-08-11 15:17:56 · 236 阅读 · 0 评论 -
Android View事件分发机制
两个流程向下分发 向下分发:Android接收到触屏事件,由Activity开始逐层向下传递,直到传递给一个View,或者ViewGroup拦截这个事件为止。分发和传递的方法分别为dispatchTouchEvent,onInterceptTouchEvent 其中dispatchTouchEvent,View、Activity、ViewGroup都有 onInterceptTouch原创 2016-09-07 15:44:31 · 370 阅读 · 0 评论 -
RecycleView监听实现
第一种在adapter中添加listenner实现listenner接口public interface OnclickRecycle { void Onclick(View view, String data);}一:在onCreateViewHolder添加监听,但是这种方法没法传递position,getposition()方法应该是过时了。public class LinearAd原创 2016-10-09 18:03:01 · 417 阅读 · 0 评论 -
Android 布局优化(include使用)
include使得xml可以重用首先先建立一个要重用的xml :pic_include.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"原创 2016-11-17 17:28:27 · 411 阅读 · 1 评论