- 博客(17)
- 收藏
- 关注
原创 关于通配符上限下限
List<? extends T> upperList=new ArrayList();;List<? super T> floorList=new ArrayList();//合法(T)upperList.get(index)//不合法upperList.set(new T())//不合法(T)floorList.get(index)//合法floorList.set(new T()
2016-10-09 21:57:25
596
原创 ImageView定宽,高度等比例放大
一个简单的需求,将图片的宽度固定扩到到屏幕宽度,高度等比例放大。 利用 android:adjustViewBounds="true" 配合MaxWidth和MaxHeight (adjustViewBounds表示宽高比例固定,要配合MaxWidth和MaxHeight才有效果)<--表示图片宽度屏幕自适应,高度根据宽度放缩比例进行放缩--> <ImageView androi
2016-07-29 14:33:00
972
原创 自定义View之利用组合View实现复用
需求:很多UI界面中有相同的View单位,比如每个UI有相同的TitleBar。 利用androidannotations注入注解框架。androidannotations框架的依赖导入://在app的build.gradle中加入粗体部分apply plugin: 'com.android.application'**apply plugin: 'android-apt'def AAVers
2016-07-21 21:29:08
1841
原创 Dagger2最简单注入使用
最为一个新手,关于Dagger2,在网上找了一天都是对新手不友好的博客,啥的不懂就直接把很多东西用上了。只能慢慢来了。First:关于添加Dagger2的依赖//增加部分apply plugin: 'com.neenbedankt.android-apt'buildscript { repositories { jcenter() } dependenci
2016-06-07 21:01:04
357
转载 Universal-Image-Loader源码解析
转:http://www.codekk.com/blogs/detail/54cfab086c4761e5001b2540
2016-06-03 19:57:49
276
原创 Volley使用说明与简单分析
Volley内部主要涉及有Request(请求),RequestQueue(请求队列),CacheDispatcher(缓存分发器,本质是缓存线程,一般只有一一条),NetworkDispather(网络分发器,本质是多线程),(背后采用线程池管理)。ResponseDelivery(Response分发器),NetWork(网络处理)。 一个Request从产生到消费的过程主要包含如下: 将通
2016-06-01 23:14:02
335
原创 工厂方法模式
对于工厂模式,第三方框架用的比较多,懂的比较少,更别提自己去造了。为先初步理解下工厂方法模式,等以后有个更深刻认识再来更。简单工厂模式就是造一个工厂接口,造一个产品接口,产生不同的具体实现类产品,然后用利用实现类工厂去生产产品,用户无需关心产品的生产过程,只在意最后拿到的产品即可。书中以女娲造人为例,这里也拿这个好了。首先定义我们要造的人的接口。public interface Human{
2016-06-01 20:46:30
336
原创 初学单例模式
单例模式,即同一个类对外只提供一个对象,一般有饿汉式和懒汉式两种。饿汉式:先实例化一个对象,将构造方法私有,对外只暴露获取该实例的静态方法public class Singleton{ private static final Singleton singleton=new Singleton(); private Singleton(){} public static Si
2016-06-01 19:15:25
233
原创 本地文件多线程复制
class Copy extends Thread{ RandomAccessFile tager; RandomAccessFile copy; long downSize; /** * * @param path 靶文件路径 * @param copy 复制后的文件路径 * @param downTotal 下载的子线程
2016-05-05 09:09:19
274
原创 UDP的简单编程
UDP面向无连接的数据传输,效率高但是不可靠,容易丢包。 以此发送数据不能超过64K,//接受UDP消息的端口public class UDPReceive { public static void main(String[] args) { byte[] buf = new byte[1024]; DatagramPacket dp = new Data
2016-05-05 08:51:19
534
原创 ContentProvider
ContentProivde 内容提供者,内部封装了对数据库的代码操作过程,对外暴露几个方法,可以提供给其他应用程序对本程序的数据库进行操作的的方法。public class Constant { public static final String AUTHORITIES="com.example.emma.demo0504.provider.peoplecontentprovider";
2016-05-04 21:17:01
251
原创 XML解析
原XML文件含有31个省,由于数据太多,只放一个象征性的广东省,其他省结构一致。 <province name="广东省" postcode="440000" > <city name="广州市" postcode="440100" > <area name="荔湾区" postcode="440103" /> <area name="越秀区" postcod
2016-05-02 21:10:10
328
原创 ListView实现看新闻
工具类public class Utils { public static InputStream getInputStreamFromPath(String path) { HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(path);
2016-05-02 17:38:53
519
原创 SQLite
用户保存常量的类public class Person_constant { public final static String TABLE_NAME_PERSON = "t_person"; public final static String TABLE_NAME_PERSON_id = "id"; public final static String TABLE_NA
2016-05-02 17:30:54
274
原创 SharedPreferences,InternalStorage,ExternalStorage
public class BoServer { private Context context; private SharedPreferences sharedPreferences; public BoServer(Context context) { this.context = context; } public void writeIntoS
2016-05-02 17:26:12
270
原创 SQLite的简单操作
创建表CREATE TABLE IF NOT EXISTS t_person(//PRIMARY KEY主键 AUTOINCRMENT自增id INTEGER PRIMARY KEY AUTOINCREMENT,//UNIQUE 不能相同name VARCHAR(20) UNIQUE,//DEFAULT 默认值 CHECK检查,必须处于1-150之间age INTEGER DEFAULT
2016-05-02 17:17:23
383
原创 纯java代码设置简单UI界面
全部采用java代码设置UI界面public class CodeViewActivity extends Activity{ public void onCreate(Bundle saveInstancesState){ super.onCreate(savedInstancesState); //创建一个线性布局 LinearLayout layout=n
2016-05-02 11:04:07
4274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人