自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流月的博客

Talk is Cheap,show me the code.

  • 博客(9)
  • 资源 (18)
  • 收藏
  • 关注

原创 JAVA I/0流学习(二)

1.BufferedInputStream与BufferedOutputStream类BufferedInputStream类可以对所有InputStream类进行带缓存区的包装以达到性能的优化。BufferedInputStream类有两个构造方法:BufferedInputStream(InputStream in)BufferedInputStream(InputStream...

2018-09-08 10:53:01 1345

原创 JAVA I/0 流学习(一)

java I/0流属于java基础知识,是每个java学习者必须要掌握的知识点,尤其是在学习网络编程时尤为重要。在变量、数组和对象中存储的数据是暂时存在的,程序结束后它们就会丢失,为了能够永久地保存程序创建的数据,需要将其保存在磁盘文件中,这样就可以在其他程序中使用它们。JAVA的 I/O技术可以将数据保存到文本文件中、二进制文件甚至是ZIP压缩文件中,以达到永久性保存数据的要求。掌握I/O处...

2018-09-07 20:10:44 2421

原创 java8新特性学习

距离java8面世已经有好长时间了,前两天翻出来以前的代码,在这里做一个分享顺便也补全一下之前漏掉的知识。java8的新特性有很多,但是对于我这种水平的菜鸡来说很大一部分我都碰不到,碰到了也不会对我造成什么大的影响,所以我总结了一下对我比较有用的几个特性:Lambda表达式 函数式接口 Stream Optional类 新的日期API Lambda表达式Lambda 表达式,...

2018-09-05 16:52:08 137

原创 【精选】Python入门算法题(三)

今天无意中发现一道算法题很有意思,题不难,都是初中的知识,主要就是求一个固定点到一条直线的最短距离,我用了一个非常麻烦的方法才求出,我先是用余弦定理求出夹角再判断用勾股定理结合方程组解出来,很是麻烦,还画了几张图,我就问我以为朋友,他说很简单啊,拿线上两点就求出来了线的斜率然后结合点到直线距离公式就出来了。可能我描述的不是很清楚,先来看一下题:Brio got his house ...

2018-09-04 19:09:54 438

原创 Python爬取bing图片

我之前写过一篇Python爬取百度图片,有兴趣的朋友可以去读一下,这次写的是爬取Bing的图片。打开Bing图片,搜索关键词,开始分析页面,可以发现bing和百度一样都是下滑自动加载,百度默认一次加载30张,bing默认一次加载35张。count是加载图片数,first是从第几张图片开始加载,直接连续请求解析网页就可以了之前百度类似的代码也发过了,我们来说另一种方法,我们发现请...

2018-09-03 18:57:43 12310 7

原创 【精选】python入门算法题(二)

上篇文章分享了一些入门算法题,如果没有看过的可以去看一下上一篇文章,这篇文章囊还是分享一些我精选的入门算法程序,废话不多说,上代码!"""实心矩形"""raw=int(input("请输入行数:"))for x in range(raw): print (" * "*x)"""空心矩形"""raw=int(input(

2018-09-02 20:24:48 584

原创 【精选】python入门算法题(一)

我们知道学习一门语言最快的方法就是多敲代码,敲一些难度适中的代码可以让我们学的更快,理解的更深,有时候你看书看博客都不明白的一个概念可能你敲一会代码你就明白到底怎么回事了,下面是我精选的python入门的算法题,也有一些小程序,希望可以帮到你"""题目:一行代码生成九九乘法表"""print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x*y)...

2018-09-02 20:16:57 2906 4

原创 Python web服务器入门

Python 其实能做很多事情,比如服务器首先我们想一下我们上网的流程,我们在浏览器或者点击链接进入一个网址,其实都是像目标服务器发送请求,然后它们把界面给我们看,python就能很简单的把它们实现import socket#定义自己的ip和端口HOST, PORT = '172.18.74.21', 8080 #实例化scoket"""它有三个参数,我们这里全是默认就...

2018-09-02 10:14:35 326

原创 python爬取百度图片

现在python很是火爆,我也忍不住去学习了一下,发现这门语言非常简单,可以用很简单的代码写出很流弊的东西,当然每门语言都有很多坑。我学习了一些基础知识便尝试写了一个爬虫,爬取百度图片,在这里分享一下我的代码。想要爬取网络上的东西首先要了解网页结构,我们使用百度图片搜索“美女”,我们会发现网页是这样子的:直接查看网页源代码,发现图片的网址都是这样的:"objURL":"http:...

2018-09-02 09:44:22 11144

思聪吃热狗

用java写的一个小游戏,日常练习用的,仅供参考。使用awt,挺有意思的

2019-04-03

程序猿表白代码

内容包含从网络收集的多种表白代码,玫瑰花网页,表白网页,vb小程序

2018-11-24

JAVA Socket远程执行任务

写的一个关于socket的例子,实现了客户端和服务器端的简单交互,客户端给服务端发送命令和jar包由服务端执行后返回结果

2018-11-21

Android动画详解

这是我学习动画时自己写的一些例子,很全,包括补间动画、逐帧动画、属性动画,还有一些自定义动画

2018-10-11

Android属性动画超全超详细

写的一个非常全面非常详细的Android属性动画例子,包含各种创建方式和使用方式

2018-10-09

AlertDialog常用对话框

AlertDialog常用创建方式,共演示了五种创建方式,每种都有注释。

2018-10-05

python爬虫程序集合

里面大概有4个爬虫程序吧,有爬取google,有百度的,有bing的,拿去参考,希望对你的学习有帮助

2018-09-03

python入门程序集合

学习python时写的一些小程序,里面大约有几十个类,都是一些基础的知识,对初学者有很大帮助

2018-09-02

QQ聊天机器人

public class MainActivity extends Activity { /** * 展示消息的listview */ private ListView mChatView; /** * 文本域 */ private EditText mMsg; /** * 存储聊天消息 */ private List<ChatMessage> mDatas = new ArrayList<ChatMessage>(); /** * 适配器 */ private ChatMessageAdapter mAdapter; private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { ChatMessage from = (ChatMessage) msg.obj; mDatas.add(from); mAdapter.notifyDataSetChanged(); mChatView.setSelection(mDatas.size() - 1); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main_chatting); initView(); mAdapter = new ChatMessageAdapter(this, mDatas); mChatView.setAdapter(mAdapter); } private void initView() { mChatView = (ListView) findViewById(R.id.id_chat_listView); mMsg = (EditText) findViewById(R.id.id_chat_msg); mDatas.add(new ChatMessage(ChatMessage.Type.INPUT, "我是小跟班,很高兴为您服务")); } public void sendMessage(View view) { final String msg = mMsg.getText().toString(); if (TextUtils.isEmpty(msg)) { Toast.makeText(this, "您还没有填写信息呢...", Toast.LENGTH_SHORT).show(); return; } ChatMessage to = new ChatMessage(ChatMessage.Type.OUTPUT, msg); to.setDate(new Date()); mDatas.add(to); mAdapter.notifyDataSetChanged(); mChatView.setSelection(mDatas.size() - 1); mMsg.setText(""); // 关闭软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // 得到InputMethodManager的实例 if (imm.isActive()) { // 如果开启 imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS); // 关闭软键盘,开启方法相同,这个方法是切换开启与关闭状态的 } new Thread() { public void run() { ChatMessage from = null; try { from = HttpUtils.sendMsg(msg); } catch (Exception e) { from = new ChatMessage(ChatMessage.Type.INPUT, "服务器挂了呢..."); } Message message = Message.obtain(); message.obj = from; mHandler.sendMessage(message); }; }.start(); } }

2017-09-25

仿QQ气泡拖动删除

private RelativeLayout root; private BounceCircle messageCount; private BounceCircle contactCount; private ImageView messageIcon; private ImageView contactIcon; private int radius = 40; // 圆形半径 private boolean init = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); root = (RelativeLayout) findViewById(R.id.activity_main); messageIcon = (ImageView) findViewById(R.id.message_icon); contactIcon = (ImageView) findViewById(R.id.contact_icon); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); // 只需执行一次,在onWindowFocusChanged方法中才能获取到控件在屏幕中的坐标 if (init) { init =false; int[] position = new int[2]; messageIcon.getLocationOnScreen(position); messageCount = new BounceCircle(this, radius, position[0] + messageIcon.getWidth(), (position[1] - Util.getTopBarHeight(this))); messageCount.setNumber("20"); messageCount.setFinishListener(new BounceCircle.FinishListener() { @Override public void onFinish() { Toast.makeText(MainActivity.this, "message count dismiss", Toast.LENGTH_LONG).show(); } }); root.addView(messageCount); contactIcon.getLocationOnScreen(position); contactCount = new BounceCircle(this, radius, position[0] + contactIcon.getWidth(), (position[1] - Util.getTopBarHeight(this))); contactCount.setNumber("30"); contactCount.setFinishListener(new BounceCircle.FinishListener() { @Override public void onFinish() { Toast.makeText(MainActivity.this, "contract count dismiss", Toast.LENGTH_LONG).show(); } }); root.addView(contactCount); } }

2017-09-25

各类监听合集

Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); Object month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); Log.e("time_now", ""+year+"_"+month+1+"_"+day+"_"+hour+"_"+minute); SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new Date(System.currentTimeMillis()); String str10 = formatter.format(curDate); Log.e("time_now1",""+str10); long time=System.currentTimeMillis(); Log.e("time_now2", ""+time); TextView textview1 = (TextView)findViewById(R.id.textview1); textview1.setAutoLinkMask(Linkify.ALL); String linktext = "百度链接 www.baidu.com"; textview1.setText(linktext); //AutoCompleteTextView AutoCompleteTextView autv_1 = (AutoCompleteTextView)findViewById(R.id.autv_1); String[] str = {"ab","abc","abcd"}; ArrayAdapter<String> stringArrayAdapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,str); autv_1.setAdapter(stringArrayAdapter); //Button 点击 Button btn_1 = (Button)findViewById(R.id.btn_1); btn_1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "按钮点击监听", Toast.LENGTH_SHORT).show(); } });

2017-09-25

导出Excel文件

public class MainActivity extends AppCompatActivity { private List<ExcelData> listExcelData=new ArrayList<ExcelData>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); addDate(); } private void addDate(){ ExcelData data1=new ExcelData("张三", "19","数学","男","大一","123"); ExcelData data2=new ExcelData("李四", "20","语文","女","大二","456"); ExcelData data3=new ExcelData("王五", "21","英语","不明","大三","789"); ExcelData data4=new ExcelData("赵六", "22","化学","不明","大四","135"); ExcelData data5=new ExcelData("阿七", "23","生物","不明","大五","246"); ExcelData data6=new ExcelData("傻八", "24","物理","不明","大六","159"); listExcelData.add(data1); listExcelData.add(data2); listExcelData.add(data3); listExcelData.add(data4); listExcelData.add(data5); listExcelData.add(data6); } public void createExcel(View v) throws FileNotFoundException { File file; File dir = new File(Environment.getExternalStorageDirectory().toString()); Log.e("飞","路径是:"+dir.getAbsolutePath()); file=new File(Environment.getExternalStorageDirectory(),"excel.xls"); if (!dir.exists()){ Log.e("飞","创建文件夹"); dir.mkdirs(); } WritableWorkbook wwb; OutputStream os= null; os = new FileOutputStream(file);

2017-09-25

数据存储练习

public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 测试sp存储 public void onClickSP(View v) { startActivity(new Intent(this, SpActivity.class)); } // 测试手机内部文件存储 public void onClickIF(View v) { startActivity(new Intent(this, IFActivity.class)); } // 测试手机外部文件存储 public void onClickOF(View v) { startActivity(new Intent(this, OFActivity.class)); } // 测试Sqlite数据库存储 public void onClickDB(View v) { startActivity(new Intent(this, DBActivity.class)); } public void onClickNW(View v) { startActivity(new Intent(this, NetworkActivity.class)); } }

2017-09-25

简易相机练习

简易相机用以练习 private SurfaceView surface; private Button shutter,position,back;//快门 private SurfaceHolder holder; private Camera camera;//声明相机 private String filepath = "";//照片保存路径 private int cameraPosition = 1;//0代表前置摄像头,1代表后置摄像头 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);//没有标题 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏 this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//拍照过程屏幕一直处于高亮 //设置手机屏幕朝向,一共有7种 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); //SCREEN_ORIENTATION_BEHIND: 继承Activity堆栈中当前Activity下面的那个Activity的方向 //SCREEN_ORIENTATION_LANDSCAPE: 横屏(风景照) ,显示时宽度大于高度 //SCREEN_ORIENTATION_PORTRAIT: 竖屏 (肖像照) , 显示时高度大于宽度 //SCREEN_ORIENTATION_SENSOR 由重力感应器来决定屏幕的朝向,它取决于用户如何持有设备,当设备被旋转时方向会随之在横屏与竖屏之间变化 //SCREEN_ORIENTATION_NOSENSOR: 忽略物理感应器——即显示方向与物理感应器无关,不管用户如何旋转设备显示方向都不会随着改变("unspecified"设置除外) //SCREEN_ORIENTATION_UNSPECIFIED: 未指定,此为默认值,由Android系统自己选择适当的方向,选择策略视具体设备的配置情况而定,因此不同的设备会有不同的方向选择 //SCREEN_ORIENTATION_USER: 用户当前的首选方向 setContentView(R.layout.activity_main); back = (Button) findViewById(R.id.camera_back); position = (Button) findViewById(R.id.camera_position); surface = (SurfaceView) findViewById(R.id.camera_surface); shutter = (Button) findViewById(R.id.camera_shutter); holder = surface.getHolder();//获得句柄 holder.addCallback(this);//添加回调 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//surfaceview不维护自己的缓冲区,等待屏幕渲染引擎将内容推送到用户面前 //设置监听 back.setOnClickListener(listener); position.setOnClickListener(listener); shutter.setOnClickListener(listener);

2017-09-25

贝塞尔曲线

从2阶到7阶的贝赛尔曲线 private static final int MAX_COUNT = 7; // 贝塞尔曲线最大阶数 private static final int REGION_WIDTH = 30; // 合法区域宽度 private static final int FINGER_RECT_SIZE = 60; // 矩形尺寸 private static final int BEZIER_WIDTH = 10; // 贝塞尔曲线线宽 private static final int TANGENT_WIDTH = 6; // 切线线宽 private static final int CONTROL_WIDTH = 12; // 控制点连线线宽 private static final int CONTROL_RADIUS = 12; // 控制点半径 private static final int TEXT_SIZE = 40; // 文字画笔尺寸 private static final int TEXT_HEIGHT = 60; // 文本高度 private static final int RATE = 10; // 移动速率 private static final int HANDLER_WHAT = 100; private static final int FRAME = 1000; // 1000帧 private static final String[] TANGENT_COLORS = {"#7fff00", "#7a67ee", "#ee82ee", "#ffd700", "#1c86ee", "#8b8b00"}; // 切线颜色 private static final int STATE_READY = 0x0001; private static final int STATE_RUNNING = 0x0002; private static final int STATE_STOP = 0x0004; private static final int STATE_TOUCH = 0x0010; private Path mBezierPath = null; // 贝塞尔曲线路径 private Paint mBezierPaint = null; // 贝塞尔曲线画笔 private Paint mMovingPaint = null; // 移动点画笔 private Paint mControlPaint = null; // 控制点画笔 private Paint mTangentPaint = null; // 切线画笔 private Paint mLinePaint = null; // 固定线画笔 private Paint mTextPointPaint = null; // 点画笔 private Paint mTextPaint = null; // 文字画笔 private ArrayList mBezierPoints = null; // 贝塞尔曲线点集 private PointF mBezierPoint = null; // 贝塞尔曲线移动点 private ArrayList mControlPoints = null; // 控制点集 private ArrayList<ArrayList<ArrayList>> mTangentPoints; // 切线点集 private ArrayList<ArrayList> mInstantTangentPoints; private int mR = 0; // 移动速率 private int mRate = RATE; // 速率 private int mState; // 状态 private boolean mLoop = false; // 设置是否循环 private boolean mTangent = true; // 设置是否显示切线 private int mWidth = 0, mHe

2017-09-25

安卓属性动画

安卓几种属性动画 rotateButton = (Button)findViewById(R.id.rotateButton); scaleButton = (Button)findViewById(R.id.scaleButton); alphaButton = (Button)findViewById(R.id.alphaButton); translateButton = (Button)findViewById(R.id.translateButton); image1 = (ImageView)findViewById(R.id.image1); image2 = (ImageView)findViewById(R.id.image2); image3 = (ImageView)findViewById(R.id.image3); image4 = (ImageView)findViewById(R.id.image4); image5 = (ImageView)findViewById(R.id.image5); rotateButton.setOnClickListener(new RotateButtonListener()); scaleButton.setOnClickListener(new ScaleButtonListener()); alphaButton.setOnClickListener(new AlphaButtonListener()); translateButton.setOnClickListener(new TranslateButtonListener()); } class AlphaButtonListener implements View.OnClickListener { public void onClick(View v) { //创建一个AnimationSet对象,参数为Boolean型, //true表示使用Animation的interpolator,false则是使用自己的 AnimationSet animationSet = new AnimationSet(true); //创建一个AlphaAnimation对象,参数从完全的透明度,到完全的不透明 AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0); //设置动画执行的时间 alphaAnimation.setDuration(2000); //将alphaAnimation对象添加到AnimationSet当中 animationSet.addAnimation(alphaAnimation); //使用ImageView的startAnimation方法执行动画 image1.startAnimation(animationSet); image2.startAnimation(animationSet); image3.startAnimation(animationSet); image4.startAnimation(animationSet); image5.startAnimation(animationSet); Toast.makeText(getApplicationContext(),"消失吧!",Toast.LENGTH_SHORT).show(); } }

2017-09-25

2048游戏源码

2048游戏源码 /** * 检测当前所有的位置都有数字,且相邻的没有相同的数字 * * @return */ private boolean checkOver() { // 检测是否所有位置都有数字 if (!isFull()) { return false; } for (int i = 0; i < mColumn; i++) { for (int j = 0; j < mColumn; j++) { int index = i * mColumn + j; // 当前的Item Game2048Item item = mGame2048Items[index]; // 右边 if ((index + 1) % mColumn != 0) { Log.e("TAG", "RIGHT"); // 右边的Item Game2048Item itemRight = mGame2048Items[index + 1]; if (item.getNumber() == itemRight.getNumber()) return false; } // 下边 if ((index + mColumn) < mColumn * mColumn) { Log.e("TAG", "DOWN"); Game2048Item itemBottom = mGame2048Items[index + mColumn]; if (item.getNumber() == itemBottom.getNumber()) return false; } // 左边 if (index % mColumn != 0) { Log.e("TAG", "LEFT"); Game2048Item itemLeft = mGame2048Items[index - 1]; if (itemLeft.getNumber() == item.getNumber()) return false; } // 上边 if (index + 1 > mColumn) { Log.e("TAG", "UP"); Game2048Item itemTop = mGame2048Items[index - mColumn]; if (item.getNumber() == itemTop.getNumber()) return false; } } } return true; }

2017-09-25

天气查询APP,Json解析,3种方式

天气查询APP,两种JSON解析方式 /** * 原始json数据解析 * */ // JSONObject jsonObject = new JSONObject(res); // String reason=jsonObject.getString("reason"); // if (reason.equals("参数不正确")){ // handler.sendEmptyMessage(1); // return; // } // JSONObject result=jsonObject.getJSONObject("result"); // JSONObject realtime=result.getJSONObject("realtime"); // JSONObject life=result.getJSONObject("life"); // JSONObject wind=realtime.getJSONObject("wind"); // String time=realtime.getString("time"); // JSONObject weather=realtime.getJSONObject("weather"); // String date=realtime.getString("date"); // dateStr=time+date; // weekStr=realtime.getString("week"); // calendarStr=realtime.getString("moon"); // windpowerStr=wind.getString("direct")+" "+wind.getString("power"); // weatherStr=weather.getString("info"); // temperatureStr=weather.getString("temperature"); // JSONObject info=life.getJSONObject("info"); // JSONArray kongtiao=info.getJSONArray("kongtiao"); // JSONArray yundong=info.getJSONArray("yundong"); // JSONArray ziwaixian=info.getJSONArray("ziwaixian"); // ACStr=kongtiao.getString(0)+" "+kongtiao.getString(1); // sportStr=yundong.getString(0)+" "+yundong.getString(1); // lightStr=ziwaixian.getString(0)+" "+ziwaixian.getString(1); /** * Gson数据解析 */ WheatherBean wheatherBean=new Gson().fromJson(res,WheatherBean.class); String reason=wheatherBean.getReason(); if (reason.equals("参数不正确")){ handler.sendEmptyMessage(1); return; } WheatherBean.ResultBean resultBean=wheatherBean.getResult(); WheatherBean.ResultBean.RealtimeBean realtimeBean=resultBean.getRealtime(); WheatherBean.ResultBean.RealtimeBean.WindBean windBean=realtimeBean.getWind(); String time=realtimeBean.getTime(); WheatherBean.ResultBean.RealtimeBean.WeatherBean weatherBean=realtimeBean.getWeather(); String date=realtimeBean.getDate(); dateStr=time+date; weekStr=realtimeBean.getWeek(); calendarStr=realtimeBean.getMoon(); windpowerStr=windBean.getDirect()+" "+windBean.getPower(); temperatureStr=weatherBean.getTemperature(); weatherStr=weatherBean.getInfo(); WheatherBean.ResultBean.LifeBean lifeBean=resultBean.getLife(); WheatherBean.ResultBean.LifeBean.InfoBean infoBean=lifeBean.getInfo(); List<String> kongtiao=infoBean.getKongtiao(); List<String> yundong=infoBean.getYundong(); List<String> ziwaixian=infoBean.getZiwaixian(); ACStr=kongtiao.get(0)+" "+kongtiao.get(1); sportStr=yundong.get(0)+" "+yundong.get(1); lightStr=ziwaixian.get(0)+" "+ziwaixian.get(1); }

2017-09-25

空空如也

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

TA关注的人

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