自定义博客皮肤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.

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

原创 常见http响应码大全

2开头 (请求成功)表示成功处理了请求的状态代码。200   (成功)  服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201   (已创建)  请求成功并且服务器创建了新的资源。 202   (已接受)  服务器已接受请求,但尚未处理。 203   (非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。 204   (无内容)  服务器成功处理了请求,但没有返...

2018-06-14 20:14:46 616

转载 HTTP基础知识

转载自:https://blog.csdn.net/zhangliangzi/article/details/513365641、常用的HTTP方法有哪些?GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。H...

2018-06-14 19:48:40 132

转载 TCP/IP三次握手与四次挥手

转载自https://blog.csdn.net/zhangliangzi/article/details/50695611一、首先了解TCP报文格式其中必须了解的字段有:1、源端口与目的端口:16位,标识出发送端与接收端的端口号。2、序号:32位,也叫顺序号、seg序号,本报文段所发送的数据的第一个字节的序号,用来标记数据报顺序。3、确认号:32位,ack序号,用来标记期待收到对方下一个报文段的...

2018-06-14 18:16:14 156

转载 计算机网络基础知识

该文章为转载,原文出处:https://blog.csdn.net/zhangliangzi/article/details/51812415第一章——概述计算机网络性能指标1、速率,传输数据速率,也叫数据率、比特率,单位有:b/s、kb/s、Mb/s、Gb/s、Tb/s2、带宽,最高传输速率,即为速率最高值,单位与速率相同3、吞吐量,单位时间通过某个网络信道或接口的数据量,单位b、kb、Mb、G...

2018-06-14 16:50:52 266

思聪吃热狗

用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关注的人

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