<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jyDave的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jyDave</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jyDave]]></copyright><item><title><![CDATA[简单的UDP通信]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/51149221</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/51149221</guid><author>jyDave</author><pubDate>Thu, 14 Apr 2016 10:05:00 +0800</pubDate><description><![CDATA[JAVA中以两个类来支持UDP通信：
java.net.DatagramPacket
java.net.DatagramSocket
这两个类代表了UDP通信中的数据包和套接字。所以，使用UDP通信也非常简单，简单归纳成三步，就是创建数据包、创建套接字、用套接字发送/接受数据包。发送UDP数据包1.创建数据包 
发送数据包的时候，一般需要知道远程主机的地址和端口，所以使用DatagramPacket]]></description><category></category></item><item><title><![CDATA[广播（Broadcast）的简单用法]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50656455</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50656455</guid><author>jyDave</author><pubDate>Sat, 13 Feb 2016 00:17:11 +0800</pubDate><description><![CDATA[发送一条广播发送广播的方法和启动Activity的方法是非常类似的。首先新建一个Intent对象，然后使用sendBroadcast()、sendOrderedBroadcast()或者sendStickyBroadcast()发送广播：
sendBroadcast()：发送一条普通广播。这种广播接收不分先后，而且不能截断，不能被修改。
sendOrderedBroadcast()：发送一条有序广播]]></description><category></category></item><item><title><![CDATA[Android与PC间进行Socket通信]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50639475</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50639475</guid><author>jyDave</author><pubDate>Fri, 05 Feb 2016 23:36:04 +0800</pubDate><description><![CDATA[自己写了一个小程序，是android手机与PC端通过Socket进行通信：服务端服务端是一段java代码，跑在PC上public class SimpleServer {    JTextArea textArea;    Socket clientSocket;    public static void main(String[] args) {
        new SimpleServer]]></description><category></category></item><item><title><![CDATA[Android中的异步通信类AsyncTast]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50620379</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50620379</guid><author>jyDave</author><pubDate>Mon, 01 Feb 2016 20:29:49 +0800</pubDate><description><![CDATA[Android中提供了一种轻量级的异步通信的方法：AsyncTast类（接口）。可以使用AsyncTast完成一些简单的多线程的操作，而不需要使用Thread或者Handler。 
使用的方法很简单，只需要继承AsyncTast类，指定类型参数，并重写其中的doInBackground()方法和其它几个回调方法。 
下面是一个简单的例子：private class DownloadFilesTask]]></description><category></category></item><item><title><![CDATA[[Head First Java] 一个简单的聊天程序]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50618344</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50618344</guid><author>jyDave</author><pubDate>Mon, 01 Feb 2016 14:11:14 +0800</pubDate><description><![CDATA[客户端public class SimpleChatClient implements ActionListener {    JTextArea incoming;
    JTextField outgoing;
    JButton sendButton;    Socket sock;
    BufferedReader reader;
    PrintWriter writer;]]></description><category></category></item><item><title><![CDATA[Java中创建多线程]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50616111</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50616111</guid><author>jyDave</author><pubDate>Sun, 31 Jan 2016 21:41:00 +0800</pubDate><description><![CDATA[启动一个新的线程
创建一个Runnable对象
Runable threadJob = new MyRunnable();Runnable相当于线程中所要执行的工作。我们需要新建一个类继承Runnable接口，并重写它唯一的方法run()。run()方法被放在新线程的栈底，是被第一个执行的方法。 
2. 创建一个Thread类的对象，并传入RunnableThread myThread = new]]></description><category></category></item><item><title><![CDATA[Java中Socket通信的基本方法]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50612811</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50612811</guid><author>jyDave</author><pubDate>Sat, 30 Jan 2016 23:03:18 +0800</pubDate><description><![CDATA[从Socket中读取数据
创建Socket连接到Server
Socket chatSocket = new Socket("127.0.0.1", 5000);创建Socket的时候需要用到两个重要的参数，一个是IP地址，另外一个是端口号。IP地址可以理解成网络中特定位置的计算机（服务器相当于一台连续工作的计算机），端口号对应于计算机中特定的服务或者应用。 
这里的IP地址127.0.0.1是本机]]></description><category></category></item><item><title><![CDATA[布局优化的几种方法]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50593046</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50593046</guid><author>jyDave</author><pubDate>Wed, 27 Jan 2016 11:34:15 +0800</pubDate><description><![CDATA[布局优化的三种方法]]></description><category></category></item><item><title><![CDATA[SeekBar的使用和自定义]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50589327</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50589327</guid><author>jyDave</author><pubDate>Tue, 26 Jan 2016 19:07:20 +0800</pubDate><description><![CDATA[SeekBar继承于ProgressBar，实际上就是一个可以拖动的进度条。]]></description><category></category></item><item><title><![CDATA[Gallery和ImageSwitcher]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50587121</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50587121</guid><author>jyDave</author><pubDate>Tue, 26 Jan 2016 14:31:19 +0800</pubDate><description><![CDATA[Gallery可以用来进行横向的图片浏览。不过在API 16以后，谷歌已经废弃了这个控件，推荐使用HorizontalScrollView或者ViewPager替代。 
而ImageSwitcher和Gallery很像，可以用来进行图片的切换显示，并且可以添加动画效果。在XML文件中创建Gallery    <Gallery
        android:id="@+id/gallery"]]></description><category></category></item><item><title><![CDATA[使用ScrollView]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50583736</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50583736</guid><author>jyDave</author><pubDate>Mon, 25 Jan 2016 23:10:41 +0800</pubDate><description><![CDATA[ScrollView本质上是一个FrameLayout，所以它只能为单一的控件提供滚动条，最常用子控件的是LinearLayout。 
TextView也可以使用ScrollView，但TextView也提供了自带的滚动条的方法。 
注意，不能对ListView使用滚动条。]]></description><category></category></item><item><title><![CDATA[用ViewFlipper实现手势滑动]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50579823</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50579823</guid><author>jyDave</author><pubDate>Mon, 25 Jan 2016 14:24:31 +0800</pubDate><description><![CDATA[ViewFlipper也可以结合onTouchEvent实现手势滑动。
在MainActivity中重写onTouchEvent方法，可以响应各种屏幕事件。通过一个变量startX保存手势起始坐标，并与当前坐标比较，可以判断向左滑动还是向右滑动。
示例代码如下：
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		sw]]></description><category></category></item><item><title><![CDATA[使用ViewFlipper实现页面自动切换]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50578849</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50578849</guid><author>jyDave</author><pubDate>Mon, 25 Jan 2016 12:06:59 +0800</pubDate><description><![CDATA[ViewFlipper继承于ViewAnimator，为两个或者多个页面间的切换提供了一种简单的方式。如果有需要，可以在多个页面中自动切换。
在XML文件中定义ViewFlipper布局
‘    <ViewFlipper
        android:id="@+id/view_flipper"
        android:layout_width="match_parent"
   ]]></description><category></category></item><item><title><![CDATA[为ViewPager添加适配器]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50575920</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50575920</guid><author>jyDave</author><pubDate>Sun, 24 Jan 2016 23:19:26 +0800</pubDate><description><![CDATA[ViewPager有两个常用的适配器，这两个适配器都继承于PagerAdapter，并将Fragment作为数据源：

FragmentPagerAdapter:  这种适配器从始至终保存所有页面的Fragment的实例。当页面形式固定且数量较小的时候，可以选择这种适配器。FragmentStatePagerAdater: 这种适配器只会保存当前、前一个和后一个页面的Fragment。当页面数]]></description><category></category></item><item><title><![CDATA[为ViewPager添加选项卡导航栏]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50574068</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50574068</guid><author>jyDave</author><pubDate>Sun, 24 Jan 2016 16:47:08 +0800</pubDate><description><![CDATA[如果你想使用选项卡导航栏但又不想使用ActoinBar的话，就可以选择给ViewPager添加PagerTabStrip或者PagerTitleStrip来实现。PagerTitleStrip是非交互式的，PagerTapStrip是交互式的，二者在其他方面完全相同。
以PagerTapStrip为例来说明：
1. 在ViewPager布局中添加PagerTapStrip
PagerTapS]]></description><category></category></item><item><title><![CDATA[使用SharedPreferences存储数据]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50340013</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50340013</guid><author>jyDave</author><pubDate>Thu, 17 Dec 2015 12:46:15 +0800</pubDate><description><![CDATA[SharedPreferences 可以替代读写文件的方法，保存一些外部数据。这些数据被保存为键值对的类型，所以对于像账号密码这种类型的数据，保存在SharedPreferences 中将会很方便。如果数据量再大的话，可以考虑使用android自带的数据库SQLite。
使用SharedPreferences 的方法主要分为以下几步：
1. 获取SharedPreferences
在官方文档]]></description><category></category></item><item><title><![CDATA[自定义水平进度条Horizontal ProgressBar]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50281349</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50281349</guid><author>jyDave</author><pubDate>Sun, 13 Dec 2015 10:31:46 +0800</pubDate><description><![CDATA[系统的ProgressBar 样式
打开Styles.xml，可以看到系统的ProgressBar 样式定义如下：
    
        false
        @drawable/progress_horizontal
        @drawable/progress_indeterminate_horizontal
        20dip
        20dip
   ]]></description><category></category></item><item><title><![CDATA[自定义Button]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50278693</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50278693</guid><author>jyDave</author><pubDate>Sat, 12 Dec 2015 22:34:44 +0800</pubDate><description><![CDATA[自定义Button，主要是对背景android:background 进行自定义。background 属性可以指定一个颜色的RGB值，也可以指定一个drawable 对象，一般为shape drawable 或者state-list drawable。
先来研究一下系统主题下的Button 样式。

打开styles.xml，找到系统下的Button 样式如下：
    
       ]]></description><category></category></item><item><title><![CDATA[实现启动界面SplashActivity]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/50278655</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/50278655</guid><author>jyDave</author><pubDate>Sat, 12 Dec 2015 22:26:47 +0800</pubDate><description><![CDATA[public class SplashActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.splash_layout);

		new ]]></description><category></category></item><item><title><![CDATA[通过继承ListActivity实现列表]]></title><link>https://blog.youkuaiyun.com/jyDave/article/details/49797607</link><guid>https://blog.youkuaiyun.com/jyDave/article/details/49797607</guid><author>jyDave</author><pubDate>Thu, 12 Nov 2015 13:04:30 +0800</pubDate><description><![CDATA[如果你的Activity 中只需要显示一个列表，那么就可以通过继承ListActivity 的方式来实现：
arrays.xml



    
        情景模式
        主题模式
        手机
        程序管理
        通话设置
        连接功能
    



MainActivity.java

public class MainA]]></description><category></category></item></channel></rss>