自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RoyZheng

书山有路勤为径,学海无涯苦作舟!

  • 博客(76)
  • 资源 (73)
  • 收藏
  • 关注

原创 AndroidStudio Debug 常用调试技巧

Bug ( 蛀虫 ) ,DeBug (调整程序,移去程序中的错误)启动DeBug两者区别很明显,前者运行程序并调试程序,后者使用较多,程序正在运行中直接启动Debug调试,点击后选择弹窗“Choose Process”(选择程序),触发断点即可;基本使用常见的调试方法就不演示了,直接两张图简单易懂:高级调试① 条件断点条件断点非常实用,使用场景:循环中只想看某个条件成立时的逻辑,条件可设定如果 names 数组中有 “ZhangSan” ,断点生效,否...

2020-10-30 16:07:28 13

原创 Android Kotlin 开发需知

变量如果某些成员变量在一开始没办法初始化,并且又不想使用可空类型(也就是带?的类型)。可以使用 lateinit 和 by lazy // 不知道具体值,后面再赋值使用;所以必须var lateinit var name: String // 知道具体值,用到的时候再加载,表示不可变的值,所以必须val // {}中的最后一行代码返回初始化的结果,加载时机为第一次调用常量的时候,且只会加载一次 private val book by lazy { ..

2020-06-29 16:05:01 94

原创 Kotlin Coroutines协程入门

Kotlin协程和协程是两个东东,这里直说Kotlin协程;Kotlin协程是一个线程框架;需要额外引入: implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0"直接上代码,简单实现:// 默认在后台执行,可指定线程GlobalScope.launch { LogUtil.i("zz------${Thread.currentThread().name}")}// zz-...

2020-06-24 15:36:02 133

原创 Android App加载图片内存空间计算

图片内存图片占用内存空间大小都很熟悉:分辨率 * 像素点大小图片占用内存空间大小和 图片分辨率,像素点大小 有关1.图片格式,图片文件大小和占用内存空间大小无关png / jpg 只是这张图片的容器,它们经过相对应的压缩算法将原图每个像素点信息转换用另一种数据格式表示,一次达到压缩目的,减少图片文件大小无论png,jpg还是webp,都需要先转换为bitmap,然后才能显示所以图片小打和图片加载进内存所占大小没关系;2.图片占用内存空间大小和像素点数据格式相关如没有指定,..

2020-06-08 16:11:38 91

原创 Android 自定义View----多点触摸反馈

多点触摸和单点不同,只要了解每隔触摸点的属性即可public class PaintingView extends View { Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); // 轻量级Map SparseArray<Path> pathMap = new SparseArray<>...

2020-04-01 16:24:10 80

原创 Android 自定义View----触摸反馈

布局,绘制,触摸反馈;想要实现和用户手势交互,必须了解触摸反馈,简述下:dispatchTouchEvent:分发事件onInterceptTouchEvent:拦截事件onTouchEvent:消费事件AAA------dispatchTouchEventAAA------onInterceptTouchEventBBB------dispatchTouchEventBB...

2020-01-16 11:07:14 184

原创 Android 自定义View----布局流程(流式布局)

绘制一个商品属性选择的控件,需要如何绘制?这个时候需要了解自定义view中的布局流程;自定义veiw包括布局,绘制,触摸反馈布局就是确定每个view的位置和尺寸,然后才能知道在哪里绘制,绘制完成后用户才能知道点哪里; 布局整体流程: 假设一个ViewGroup里面有n个子view 的布局过程 分测量和布局两个流程 ①测量流程:从最上面的父view往下...

2020-01-07 17:32:40 136

原创 Android 自定义View----文字绘制(文字居中自动换行)

c使用canvas绘制文字非常简单,但文字绘制根据baseLine无法剧中,网上说法很多,有点麻烦,这里用到一个非常简单的办法,先来看下文字的绘制参考线图片直接百度复制的,不是自己画的,有时间自己画一个;文字上下居中其实很简单 // 单行绘制 (先计算出基线和到文字中间的距离,mPaint不是TextPaint) float offset = M...

2020-01-01 23:15:44 426 1

原创 Android 自定义View----属性动画(如何在自定义view中添加动画)

自定义view难免会接触到动画,不然很多效果做不出来,动画分为几种,今天主要用到的是属性动画;上面这个效果分上下两部分完成,在绘制的时候先绘制下半部分,具体代码如下,里面有详细注释:public class CameraAnimatorView extends View { private Paint mPaint = new Paint(Paint.ANTI_ALIAS_...

2019-12-30 14:35:33 210

原创 Android 自定义View----离屏缓冲和图像混合模式(圆形头像)

这里主要了解下离屏缓冲和图像混合模式,可能在自定义view的时候会用到,绘制的内容也非常简单,一个简单的圆形头像绘制大概分为5步:1,开启离屏缓冲2,绘制一个圆3,设置图像混合模式 https://www.cnblogs.com/libertycode/p/6290497.html4,绘制bitmap5,绘制完成后使用 restoreToCount 将离屏缓冲的绘制...

2019-12-27 11:36:47 367 1

原创 Android 自定义View----PathEffect(仪表盘,饼图)

通过这个view大致了解了几个方法,可通过PathEffect给path设置样式;大致分三步:第一步:通过canvas.drawArc()方法先把圆弧画出来第二步:画刻度(这里通过给画笔设置PathEffect的方法实现刻度绘制,并非for循环画线)第三步:画指针(这里需要了解正弦余弦,其实都是API的方法,直接调用即可,但需要自己理解)public class Dash...

2019-12-18 18:36:13 208

原创 Android性能优化:ANR异常处理

ANR(Application Not Responding)应用程序无响应导致ANR异常的原因很多:InputDispatching Timeout:5秒内无法响应屏幕触摸事件或键盘输入事件BroadcastQueue Timeout :在执行前台广播(BroadcastReceiver)的onReceive()函数时10秒没有处理完成,后台为60秒Service Timeo...

2019-08-20 16:23:23 360

原创 Android性能优化:Layout布局优化小建议 DDMS

页面直接和用户交互,如果页面出现卡顿,用户体验会瞬间下降;当然,页面卡顿并非完全是Laout的问题,今天只说Layout优化的一点点建议;1.了解DDMS,使用Hierarchy View 监测页面2.使用Lint tool监测布局3.平时开发应注意事项启动DDMS低版本AndroidStudio可直接打开DDMS,新版本需要寻找SDK文件夹,找到monito...

2019-08-03 09:40:30 122

原创 Android GreenDao数据库使用详解(数据存储)

app数据存储有很多办法,一般情况下根据数据量来选择:数据量较小可使用SharedPreferences保持,比较多使用GreenDao保存,数据量巨大可使用File流保存;最近项目中需要保存几百组数据,正好借此结合了解下GreenDao数据库,为什么选择GreenDao?GreenDao有那些优势就不再叙述了,网上一搜一大堆,简单说下使用步骤,重点了解下查询操作;导入插件配置Gr...

2019-07-12 10:45:26 298

原创 AndroidStudio 生成jar 和 aar(混淆)

首先看下效果图,左边是封装之前的代码,右边是生成混淆jar包 供"兄弟公司"使用.目前最常见的有*.so,*.jar,*.aar三种(.so一般C或者C++使用,我们说下后两者)做之前感觉有点神秘且高大上,其实很简单,大致分为四步:创建好moudle将需要生成jar的类准备好 >配置buidl.gradle文件 > 配置混淆规则 > 生成ja...

2019-07-11 16:21:53 254

原创 Android性能优化:Apk 瘦身之路

想要变瘦必须知道“肉”都从哪里来的, Buidl > Analyze Apk > 选择apk包 (查看apk体积结构)(原包25M+,优化后15M-)其实apk瘦身很简单(把问题简单化,先入门),主要从三方面入手:1:资源2:图片优化3:混淆资源首先监测并删除无用资源:Analyze > Run Inspection by Name > 输入 u...

2019-07-04 22:53:51 192

原创 Android app前后台切换监听

目前正在开发的app使用WebSocket传输实时数据,为了更好的用户体验,需要app退至后台时主动断开长连接,当用户再次切换进入前台程序时链接长连接;实现起来非常简单,自定义Application,在onCreate中添加监听即可 private fun initAppStatusListener() { ForegroundCallbacks.init(th...

2019-06-30 21:08:53 1477

原创 Android 闪屏启动页全面屏适配

随着全面屏手机普及,目前市面上的手机屏幕尺寸大致分为三种:非全面屏(16:9),全面屏(18:9),全面屏(>18:9)App启动初始化程序会出现短暂的白屏问题,为解决白屏可设置启动页面样式:<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!...

2019-06-28 16:07:05 3922 1

原创 android:自定义view--区线图

老规矩,先上图,整个自定义view分为标题模块,xy轴标注数据模块和数据模块,其实数据模块是有一个浅灰色的背景,但是动态图里面看不出来,真机上可以看出;和前面几个图表相比增加了贝塞尔区线,虚线,手势点击显示标注线和当前日数据;后面还有左右按钮切换上周下周数据,这个不是主要功能,就不加到博客中了,真实项目使用直接将数据准备好,左右切换的时候切换数据源刷新view即可;老...

2018-04-05 00:10:39 485

原创 android:RecyclerView布局管理显示不同跨度和空布局

布局管理器显示不同跨度:实用RecyclerView必须设置一个布局管理器,这里设置GridLayoutManager,还需要给布局管理器设置一个方法; //设置表格,根据position计算在该position处item的跨度(占几列数据) layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLo

2018-01-16 11:10:07 1394

原创 android:自定义view--组合控件

项目中用到了很多类似的界面,一行左右两边都是显示文本,数量非常多;如果按照普通的方法画肯定也能非常轻松的画出来,但是因为使用地方较多,为了后期维护,代码的简介,提高开发效率,简单易用等等:可以自定义一个组合控件;自定义组合控件使用起来非常方便,创建也非常的简单,四步走:第一步:创建组合控件的XML布局文件<LinearLayout xmlns:android="h...

2017-12-13 10:56:52 466 1

原创 android:自定义view--横向柱形图

此demo也是从我们真实项目中copy出来的;大致步骤和制作MyTabView差不多,只不过稍微繁琐一些;/** * Created by zheng on 2017/12/4. * 横向的柱形图 * * 1:绘制XY轴 * 2:绘制XY轴刻度和旁边的文本 * 3:绘制圆角矩形(六个月份的柱子) * 4:绘制和背景颜色一样的矩形(遮挡圆角矩形左边的圆角) * */...

2017-12-11 14:07:41 1179 3

原创 android:自定义view--MyTabView

如果标题分割线是竖直的就非常简单了,可以直接使用TabLayout实现;其实上面的圆角不用咱们考虑,因为activity中间部分整体是一个CardView只需将title部分自己画出来即可;整个view由四个图形绘制而成:android自定义view:Paint和Canvas真个view代码比较连贯,虽然整个view粘贴上来有点乱,但是分开粘贴看上去更乱;pub...

2017-12-01 14:41:17 757 3

原创 android自定义view--Paint和Canvas

demo主要简单了解下自定义view在onDraw()对视图进行绘制的一些简单操作如果英语很6可以直接看官方文档:Canvas官网地址 Paint官网地址要绘制图形,首先得调整画笔(Paint),按照自己的需求设置画笔的相关属性,常用的一些设置有: 1、setAntiAlias():设置画笔的锯齿效果 2、setDither():设置防抖动 ...

2017-11-30 16:20:27 549 1

原创 android:viewpager+photoview实现图片查看器

效果需要两个手指禁止缩放,所以没有光标,只能用手机投放电脑上录制动态图片;demo中实用了一个第三方的photoview,非常简单实用;可实现图片双击放大,手势放大缩小,当手指离开屏幕时如果图片小于原图可自动恢复原图大小,可实现点击监听,长按图片监听;整个demo非常简单,整体就是一个activity,页面布局只有一个viewpager和textview<RelativeLayout

2017-11-28 11:11:38 7785 2

原创 android:高仿京东商品属性筛选(流式布局)

筛选和属性选择是目前非常常用的功能模块;几乎所有的APP中都会使用;点击筛选按钮会弹出一个自己封装好的popupWindow,实用方法非常简单;两行代码直接显示;(当然初始化数据除外)这里和以前用到的流式布局有些不一样:流式布局以前使用的是单个分类,而且也没有在项目中大量实用;这个筛选功能除了数据外几乎都是从项目中Copy出来的;整个popupWindow布局就是一个自定义的Lis

2017-11-24 16:45:29 4342 1

原创 android ripple水波纹详解

Ripple是Material Design(材料设计)中的效果;虽然在5.0的机型上,会自带Ripple点击效果,但是有时候需要自己更改点击效果;使用Ripple的关键就是在android:background中设置;使用方法也非常简单,在drawable中创建**.xml文件:<!--在真是项目中都有自己的主题颜色,Ripple效果的颜色默认是灰色;可通过android:co

2017-09-22 14:09:27 2066

原创 Android:TabLayout向上滑动停留页面顶部

相信大家在很多APP中都可以看到这样的效果;下面是一个tablayout,上面可以加入其他的布局文件,当滑动的时候tablayout停留在页面顶部;我们这里使用CoordingatorLayout + TabLayout + ViewPager来实现;如果不了解CoordingatorLayout 和TabLayout的可以看下以前的博客先了解下:CoordingatorLayout详

2017-07-27 14:12:37 13495 16

原创 Android高仿京东淘宝商品列表布局切换效果

商品列表布局切换效果很常见,因为淘宝京东有的界面下面很多公司都会给风模仿当然,我们公司也不例外,最近版本更新添加了这个功能;在项目中直接使用RecyclerView实现切换功能;如果不了解RecyclerView的可以先看下:  RecyclerView使用详解使用RecyclerView可以非常简单的实现功能;第一步:在adapter中重写getItemViewType()方

2017-04-27 15:37:25 7561

原创 Android使用MediaPlayer播放音乐文件

这里主要介绍的是SeekBar拖动条和MediaPlayer播放器;最近项目添加一个音乐播放页面,让用户可以试听警报声,所以实现单曲播放,但是只要单曲可以实现,多曲也非常简单;首先看下布局文件,在这只复制SeekBar:(其他的布局文件太简单了,如果想看可以下载demo) <!-- android:max="100" 设

2017-03-23 17:55:25 2043 1

原创 android圆形头像:相机裁剪+相册选择

这里我们调用的都是系统提供的类,所以使用起来非常简单;每次点击圆形头像都会弹出一个PopupWindow,可以点击“拍照”,“手机相册”和"取消";1,当点击"拍照"时开启系统拍照页面,拍照完成 成功接收图片以后 携带数据 打开 图片裁剪页面,裁剪完成  成功接收图片显示到view上面;2,当点击"手机相册"时 开启系统相册选择页面,选择完成以后获取图片路径,显示到view上面;

2017-03-10 10:12:52 1861 2

原创 RecyclerView显示多种Item布局

如果大家不了解RecyclerView,请点击下面博客先进行了解:http://blog.csdn.net/zheng_jiao/article/details/52389707如果大家使用过RecyclerView,显示多个item非常简单;我们项目中有6个不同的布局,在这里我为了大家方便查看,我显示2个不同的布局;/** * Created by ZhengJiao on

2017-03-09 10:18:04 4327 5

原创 android:PopupWindow嵌套ListView (附加制作9.png图片)

首先看下效果图,就是普通的PopupWindow弹出分类选项点击效果;popupWindow的布局有两种方式可以实现:第一种:使用线性布局直接将将图片,文字写好;第二种:为长期考虑,使用PopupWindow嵌套ListView;(可扩展性强)我们Demo中使用的是第二种;可能大家会感觉非常简单,但是在项目中使用的时候还真的碰到一些坑;主页面布局就不在展示了,我们先看下Po

2017-01-07 22:50:20 2011 4

原创 Android流式布局FlowLayout

现在商城类的APP几乎都要用到流式布局来实现选择属性功能,在我的demo中是通过FlowLayout工具类实现流式布局使用起来非常简单,十几行代码就可以实现;在我们的项目中大部分都是单选效果,为了防止用到多选,demo中也实现了多选;FlowLayout大家不用研究怎么实现的,只要会使用就好;就好比谷歌提供的ListView条目点击事件一样,只要会用就好,没必要研究个所以然;大家在

2016-12-30 16:40:08 1675 2

原创 android搜索框上下滑动变色

搜索框上下滑动变透明度是现在APP中很常见的效果;首先来看下布局骨架:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par

2016-11-30 15:13:22 2555 2

原创 android商品详情详解

首先看下效果图(样式,布局可以根据产品要求改变),先大致说一下,整体结构使用的是LinearLayout实现,分上下两部分,上边就是我们能滑动的自定义布局,下面就是“进入店铺”,“立即购买”这两个无关紧要的布局;下面是根据产品的要求更改的,每个APP几乎都不一样,所以说是无关紧要;布局文件骨架:<LinearLayout xmlns:android="http://sche

2016-11-29 15:00:14 1765 2

原创 Android底部导航框架(解决fragment界面重现,getActivity空指针)

android底部导航框架可以说是目前最常用的框架,看似非常简单的框架如果搭建不好后期会出现各种意想不到问题;比如我前面两篇写的每次点击底部图标fragment之间会来回替换,这样肯定不实用;这个demo使用add(),hide(),show()代替replace()再者当打开app之后按home键退出,浏览其他app当内存重启的时候再次打开我们的app会出现四个fragment重现的问题

2016-10-10 14:43:12 1770

原创 DrawerLayout详解(结合Tollbar实现菜单侧滑)

DrawerLayout(抽屉布局):谷歌官方的控件,可以简单的实现侧滑菜单;此Demo主要是DrawerLayout结合Toolbar实现侧滑左上角返回键实现动画效果,点击左上角返回键实现动画效果并且滑出滑入侧滑菜单;xml布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

2016-09-23 13:37:50 1074

原创 TextInputLayout输入框控件的悬浮标签

TextInputLayout也是5.0以后的效果,想要使用同样需要在build中配置:dependencies { compile 'com.android.support:design:23.3.0'}TextInputLayout可以用来显示一个提示错误信息,把Hint放到EditText左上方等效果的一个布局;如果项目中有这类的需求,使用TextInputLayout实现

2016-09-22 21:18:03 2009 1

原创 Tablayout的简单使用

在项目中使用viewpager的时候大多数都是和TabPagerIndicator结合使用,TabPagerIndicator是第三方的,使用起来比较繁琐;2015谷歌大会官方发布了TabLayout,可以很简单很完美的实现这种效果;因为是官方发布的,所以使用起来不用任何第三方的东西;而且非常简单明了;先看下布局:<LinearLayout xmlns:android="http:

2016-09-21 22:27:28 3061

仿京东分类功能 ListView联动|访京东分类,两个ListView联动.rar

仿京东分类功能 ListView联动

2016-05-13

仿京东分类功能|访京东分类,两个ListView联动.rar

仿京东分类功能

2016-05-13

京东分类页面|访京东分类,两个ListView联动.rar

京东分类页面

2016-05-13

ListView联动|访京东分类,两个ListView联动.rar

ListView联动

2016-05-13

ListView联动效果|两个ListView联动.rar

ListView联动效果

2016-05-13

android:listview联动|两个ListView联动.rar

android:listview联动

2016-05-13

高仿京东分类功能|高仿京东分类功能.rar

高仿京东分类功能

2016-05-13

android:联动|listview.rar

android:联动

2016-05-14

android:商品分类|商品分类.rar

android:商品分类

2016-05-14

ListView下拉刷新and上拉加载|ListView下拉刷新and上拉加载.rar

ListView下拉刷新and上拉加载

2016-05-16

两个ListView同步滚动|ListViewSync.rar

两个ListView同步滚动

2016-05-17

android底部导航|app框架:底部导航.rar

android底部导航栏框架,解决内存重启fragment重现,getActivity()空指针异常

2016-10-10

自定义图表:贝塞尔区线

自定义view:了贝塞尔区线,虚线,手势点击显示标注线和当前日数据

2018-04-05

Recycler显示不同跨度数据

RecyclerView显示不同跨度的数据,可实现复杂页面逻辑;当适配器没有数据时显示空布局;自定义RecyclerView实现;非常简单;

2018-01-16

自定义组合控件

结合自定义属性完成组合控件,优点:后期维护,代码的简介,提高开发效率,简单易用等等

2017-12-13

自定义横向柱形图

使用自定义view绘制出横向的柱形图,圆角柱形图,背景颜色渐变,柱形图标注人数等功能实现;

2017-12-11

自定义TabView

实用自定义属性,paint,canvas在ondraw中绘制自己需要的view;此view在真实项目实用;

2017-12-01

自定义view(Paint和Canvas)

自定义view:简单了解Paint常用设置,Canvas的常用方法;

2017-11-30

图片查看器

实用viewpager+photoview实现图片左右滑动,缩放,自动恢复原图,拖拽,点击事件,长按事件等操作;

2017-11-28

android高仿京东属性选择

实用流式布局实现京东筛选,属性选择功能;筛选和属性选择是目前非常常用的功能模块;几乎所有的APP中都会使用; 点击筛选按钮会弹出一个自己封装好的popupWindow,实用方法非常简单;两行代码直接显示;(当然初始化数据除外)

2017-11-24

Ripple水波纹

通过ripple实现按钮点击水波纹效果;Ripple是Material Design(材料设计)中的效果; 虽然在5.0的机型上,会自带Ripple点击效果,但是有时候需要自己更改点击效果; 使用Ripple的关键就是在android:background中设置;

2017-09-22

TabLayout上下滑动标题停留顶部

CoordingatorLayout + TabLayout + ViewPage实现上下滑动TabLayout停留页面顶部;

2017-07-27

高仿京东商品列表布局切换

高仿淘宝京东商品列表布局切换;使用RecyclerView实现商品列表布局切换效果;

2017-04-27

Android签名获取工具

Android MD5 签名获取工具

2017-03-27

Android播放音乐

Android播放音乐文件,使用MediaPlayer播放音乐文件,实现拖拽播放;

2017-03-23

Android相机相册图片裁剪

调用系统相机相册获取图片,开启系统图片裁剪页面处理图片;

2017-03-10

RecyclerView显示不同item

RecyclerView显示不同的item;

2017-03-09

PopupWindow嵌套ListView

Demo实现了PopupWindow嵌套ListView,使用简单方法解决ListView宽度自适应问题;以及包含使用AndroidStudio制作9.png图片;

2017-01-07

Android流式布局

使用FlowLayout工具类实现流式布局,可实现单选,多选,非常简单,十几行代码搞定;

2016-12-30

Android搜索框变色

实现效果:页面上下滑动时根据滑动告诉设置搜索框的颜色;

2016-11-30

android商品详情

android商品详情,通过一个自定义的布局非常简单的实现功能效果;可以根据不同要求更改布局;

2016-11-29

android侧滑删除

使用SwipeLayout实现布局侧滑删除,适用于任何布局,使用起来非常的简单;

2016-10-24

android框架

android框架:底部导航;解决内存重启时多个fragment重叠 和 getActivity()空指针异常;

2016-10-13

android底部导航框架

android底部导航框架,带有购物车消息提示(小圆点);解决内存重启出时fragment重现,停留首页;解决getActivity()空指针异常;

2016-10-10

DrawerLayout

使用DrawerLayout实现侧滑菜单,非常简单!

2016-09-23

TextInputLayout

TextInputLayout实现输入框悬浮标签,错误信息提示;

2016-09-22

Tablayout详解

使用官方自带的tablayout实现viewpager标题联动效果;

2016-09-22

CollapdingToolbarLayout

CollapdingToolbarLayout和toolbar结合使用,可以简单实现折叠效果动画;

2016-09-20

AppBarLayout应用标题栏容器

CoordinatorLayout:AppBarLayout应用标题栏容器

2016-09-19

android:ToolBar

android5.0特效,可以代替actionbar

2016-09-19

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除