
Android
文章平均质量分 90
关于Android的学习和总结
Davisxy
这个作者很懒,什么都没留下…
展开
-
RecyclerView源码解析
转载:【进阶】RecyclerView源码解析【进阶】RecyclerView源码解析(一)——绘制流程【进阶】RecyclerView源码解析(二)——缓存机制【进阶】RecyclerView源码解析(三)——深度解析缓存机制【进阶】RecyclerView源码解析(四)——RecyclerView进阶优化使用作者写的很好,看下来会有很大的收获;...转载 2020-10-29 16:28:40 · 132 阅读 · 0 评论 -
安卓内外部存储完全解析 -- 别再弄混了
转载: 安卓内外部存储完全解析 – 别再弄混了安卓开发离不开手机存储,然而大部分人对于安卓开发中的存储概念存在误区,内部外部SD卡傻傻分不清?概念扫盲以下引用来自对官方文档的理解安卓手机的存储分为 2 部分,内部存储 ( Internal ) 和外部存储( External )呵呵呵,先别说话,然而重点来了(敲黑板),按照官方的说法,内部存储是指系统的存储空间,没有root是访问不到的呦亲,比如sharedPreferenced或者database都是保存在这里面的。外部存储,又分为 2转载 2020-10-28 12:37:56 · 1287 阅读 · 2 评论 -
PorterDuff.Mode
PorterDuff.Mode标签(空格分隔): 未分类介绍PorterDuff.Mode各个击破搞明白PorterDuff.Mode有用的案例慢慢积累,找到就补上参考:PorterDuff.Mode各个击破搞明白PorterDuff.Mode原创 2020-09-02 23:12:45 · 201 阅读 · 0 评论 -
ViewPager.setOffscreenPageLimit
ViewPager.setOffscreenPageLimit标签(空格分隔): viewpager测试demo:一个ViewPager+6个FragmentsetOffscreenPageLimit(1)看到一些解释说setOffscreenPageLimit设置的数字有两层意思一个是代表预加载的数量:n一个是缓存的最大数量:2*n+1此时依据上面描述,当设置为1时,预加载的数量是1,缓存的最大数量是3下面来验证一下###初始化Fragment1: onAttachFragme原创 2020-08-28 14:42:20 · 4638 阅读 · 0 评论 -
合并点击事件
先不管说出于什么样的产品需求,只说此种情况下的使用:把id通过数组传进来,遍历注册点击事件,响应事件为同一个事件block{}object MergeUtil { /** * 合并点击事件 */ fun mergeClick(vararg views: View, block: (view: View) -> Unit) { views?.let { it -> for (view in it) {原创 2020-05-19 17:53:48 · 363 阅读 · 0 评论 -
关于 Android 中 Bitmap 的 ARGB_8888、ALPHA_8、ARGB_4444、RGB_565 的理解
转载自:[关于 Android 中 Bitmap 的 ARGB_8888、ALPHA_8、ARGB_4444、RGB_565 的理解][https://www.jianshu.com/p/80b2068a90a8]ARGBA 是 alpha,透明度。RGB 是 Red、Green、Blue,红色、绿色、蓝色,三种原色。Bitmap.Config 有四种枚举类型。ARGB_8888:ARG...转载 2020-02-23 17:19:56 · 585 阅读 · 0 评论 -
ScrollView的几个属性
android:fillViewport="true"当子布局高度小于ScrollView的高度时,定义子布局match_parent不起作用在scrollview里添加属性android:fillViewport=”true” 就可以了,使得子布局高度和scrollview一样,而当子布局高度超过scrollview的高度时,这个属性就没有意义了android:overScrollMod...原创 2019-11-28 15:01:16 · 381 阅读 · 0 评论 -
Recycler view is not updated until you start scrolling
notifyDataSetChanged方法调用后没有作用,必须手动往上滑动一下才显示数据;不是必现的,带有偶然性(始终表现在初始化),时而显示,时而不显示;布局结构是(viewpager+fragment+recyclerview)目前排除掉一些情况:数据源List没有数据;压根就没调用到notifyDataSetChanged;没有设置layoutmanagerList的内存地...原创 2019-11-08 18:33:02 · 164 阅读 · 0 评论 -
往手机插入联系人
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//Con翻译 2016-04-04 17:04:12 · 354 阅读 · 0 评论 -
android中File文件写的实现
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findVie翻译 2016-04-06 15:26:49 · 331 阅读 · 0 评论 -
android中File文件的读的实现
public class MainActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ac翻译 2016-04-06 15:28:55 · 466 阅读 · 0 评论 -
ShapedPrepference轻量级数据存储方式
ShapedPrepference是android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息。例如,默认欢迎语,登录用户名和密码等,其以键值对的方式存储,使得我们很方便的进行读取和存入。所谓轻量级,它除了处理存储占空间小以外,还要与底层没有依赖关系,操作简单,功能专一。存储地点:data/data/包名目录下public class MainActivity ext翻译 2016-04-06 14:31:43 · 455 阅读 · 0 评论 -
数据库增删改查(一)
1,加载JDBC驱动 2,连接到数据库 3,准备sql语句 增删改查 insert into person (name,number) values ('zhangsan','110') select * from person update person set number='119' where name='zhangsan' delet原创 2016-03-26 16:41:41 · 336 阅读 · 0 评论 -
数据库增删改查(二)
public class MyDatabaseHelper extends SQLiteOpenHelper { //建表Book public static final String CREATE_BOOK="create table Book (" +"id integer primary key autoincrement," +"author text," +"p原创 2016-04-07 20:43:26 · 443 阅读 · 0 评论 -
布局
LinearLayout(线性布局) RelativeLayout(相对布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) FrameLayout(单帧布局) 线性布局常用属性: android:id - 为控件指定相应的ID android:text - 指定控件当中显示的文字,需要注意的是,这里尽量使用原创 2016-03-26 16:37:31 · 397 阅读 · 0 评论 -
orientation
线性布局显示组件的方式有两种方式:垂直(vertical)和水平(horizontal)原创 2016-03-26 16:39:05 · 449 阅读 · 0 评论 -
wrap_content和match_parent/fill_parent
match_parent/fill_parent:填充满 wrap_content:自适应原创 2016-03-26 16:39:46 · 328 阅读 · 0 评论 -
Intent
Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Serv原创 2016-03-26 16:40:23 · 383 阅读 · 0 评论 -
ListView和Adapter
main_xml里定义一个ListView; MainActivity里: private ListView lv; private ArrayAdapter adapter; //定义一个适配器 onCreate里: lv=(ListView)findViewById(R.id.lv); //寻址 List arr原创 2016-03-26 16:42:21 · 544 阅读 · 0 评论 -
android.R.layout
android.R.layout.simple_list_item_1 //列表选项的简单布局 android.R.layout.simple_expandable_list_item_2 //可拓展列表选项的简单布局 android.R.layout.simple_list_item_checked原创 2016-03-26 16:43:03 · 738 阅读 · 0 评论 -
集合Map
map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 HashMap:我们最常用的Map,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度。HashMap最多只允许一条记录的key值为Null(多条会覆盖);允许多条记录的Value为 Null。翻译 2016-03-26 16:43:44 · 262 阅读 · 0 评论 -
ListView和Adapter
1, 自定义一个list_item.xml布局文件2,publicclassMainActivity extends Activity { private ListView lv;//自定义一个adapter适配器// privateArrayAdapter> adapter; @Override protected void onCreate(B翻译 2016-03-26 16:44:49 · 314 阅读 · 0 评论 -
按钮
android:state_pressed="true"表示按下 android:state_pressed="false"表示松开原创 2016-03-26 16:53:33 · 356 阅读 · 0 评论 -
求屏幕分辨率px
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); //获得手机的宽度和高度像素单位为px System.out.println("手机屏幕分辨率为:" + dm.widthPixels+"* "+dm.heightPixels);原创 2016-03-26 16:54:10 · 347 阅读 · 0 评论 -
时钟
DigitalClockdigitalclock=(DigitalClock) findViewById(R.id.digitalclock);AnalogClock analogclock=(AnalogClock)findViewById(R.id.analogclock);AnalogClock例子:public classMainActivity extends Activ翻译 2016-03-26 16:55:15 · 368 阅读 · 0 评论 -
时间日期
DatePicker日期(显示在屏幕上)TimePicker时间DatePickerDialog(显示在弹出的Dialog上)TimePickerDialog原创 2016-03-26 16:56:43 · 252 阅读 · 0 评论 -
颜色资源
#ffffff #fffff0 #ffffe0 #ffff00 #fffafa #fffaf0 #fffacd #fff8dc #fff5ee #fff0f5 #ffefd5 #ffebcd #ffe4e1 #ffe4c4 #ffe4b5 #ffdead #ffdab9 #ffd700 #f原创 2016-03-26 17:16:01 · 21753 阅读 · 0 评论 -
尺寸资源(px和dp之间的转换)
1, 根据尺寸id获取尺寸资源Float width=getResources().getDimension(R.dimen.btn_width);Floatheight=getResources().getDimension(R.dimen.btn_height);2,像素=独立尺寸*像素密度+0.5 Floatscale=getResources().getDi原创 2016-03-26 17:16:37 · 1165 阅读 · 0 评论 -
形状资源(shape)
图片区域大小角弧度背景渐变效果区域的边距 区域背景颜色,如果设置了solid,则会覆盖gradient的效果区域的边框 Android:width=”100dp”Android:height=”100dp”/>Android:radius=”10dp”/>Android:color=”#fff000”/>Android:c原创 2016-03-26 17:17:31 · 405 阅读 · 0 评论 -
获取系统联系人信息
java文件public class SelectContactActivity extends Activity { private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn转载 2016-03-26 18:24:37 · 292 阅读 · 0 评论 -
读取、创建Json格式数据
java代码public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);翻译 2016-03-26 18:30:27 · 439 阅读 · 0 评论 -
抽屉
android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > android:id="@+id/content_frame" android:layou翻译 2016-03-26 18:34:11 · 347 阅读 · 0 评论 -
如何获取短信信息(一)
读取短信信息翻译 2016-03-26 15:57:39 · 1466 阅读 · 0 评论 -
如何获取短信信息(二)
SmsListActivity.javapublic class SmsListActivity extends Activity { private ListView listview; private List infos; @Override protected void onCreate(B原创 2016-03-26 18:38:34 · 606 阅读 · 0 评论 -
系统通知Notification的基本用法
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findVie原创 2016-04-12 22:02:56 · 481 阅读 · 0 评论 -
接收短信
public class MainActivity extends Activity { private TextView name, Context; private IntentFilter receiveFilter; private MessageReceiver messageReceiver; @Override protected void onCreate(Bundle翻译 2016-04-12 22:41:23 · 313 阅读 · 0 评论 -
短信的接受发送
public class MainActivity extends Activity { private TextView name, Context; private IntentFilter receiveFilter; private IntentFilter sendFilter; private SendStatusReceiver sendStatusReceiver; pr翻译 2016-04-13 11:00:24 · 512 阅读 · 0 评论 -
调用摄像头拍照
public class MainActivity extends Activity { private static final int TAKE_PHOTO = 1; private static final int CROP_PHOTO = 2; private Button btn; private ImageView iv; private Uri imageUri; @O翻译 2016-04-13 12:21:51 · 336 阅读 · 0 评论 -
调用摄像头拍照和从相册中选择照片
public class MainActivity extends Activity { private static final int TAKE_PHOTO = 1; private static final int CROP_PHOTO = 2; private static final int CHOOSE_PHOTO = 3; private Button btn,btn1;翻译 2016-04-13 13:05:51 · 606 阅读 · 0 评论 -
播放视频
public class MainActivity extends Activity implements OnClickListener{ private Button play,pause,stop; private VideoView videoView; @Override protected void onCreate(Bundle savedInstanceState) {翻译 2016-04-13 14:51:32 · 449 阅读 · 0 评论