<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sinat_35657236的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sinat_35657236</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sinat_35657236]]></copyright><item><title><![CDATA[自定义View-太极旋转]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/70238199</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/70238199</guid><author>sinat_35657236</author><pubDate>Wed, 19 Apr 2017 11:08:56 +0800</pubDate><description><![CDATA[主要注意的坑就是，画布进行旋转或者平移之后是不会对之前画的画进行更改的。所以，想要有画布变化效果，画布的变化操作是不能放在最后一句的。
上两张效果图，不知道怎么录动图，还有一点，选择的左边系很重要，我这里取的坐标系已经很复杂了感觉。












直接贴代码：
public class TaiJiCustomView extends View {
    P]]></description><category></category></item><item><title><![CDATA[ViewPager 两边显示部分其他页]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/70084036</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/70084036</guid><author>sinat_35657236</author><pubDate>Tue, 11 Apr 2017 18:19:03 +0800</pubDate><description><![CDATA[主要就是设置margin，Viewpager父节点设置  android:clipChildren="false"
viewpager.setpagerMargin();




代码
public class MainActivity extends AppCompatActivity {
    ViewPager vp;
    int colors[]=new int[]{C]]></description><category></category></item><item><title><![CDATA[自定义圆角进度条，不是很难，却有一些需要注意的地方]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/69388444</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/69388444</guid><author>sinat_35657236</author><pubDate>Thu, 06 Apr 2017 12:59:14 +0800</pubDate><description><![CDATA[之所以想试试这个，是因为看到了MIUI商店中的安装按钮






就像自己做一个吧，因为自己也是菜鸟，遇到了一些问题，其中最主要的是，xfermode中，要saveLayer到一个新的透明图层进行绘制，完了再显示到Canvas中，不然的话，会吧原来的背景色都会当做DST处理。没有效果，写的时候，一度怀疑人生。
还有一个就是，text要居中，DrawText其实不是从左上角0,0开]]></description><category></category></item><item><title><![CDATA[安卓 高斯背景模糊popupwindow，弹簧弹出 rebounds]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/67634039</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/67634039</guid><author>sinat_35657236</author><pubDate>Tue, 28 Mar 2017 11:43:16 +0800</pubDate><description><![CDATA[最终类似效果图，没有截动画，gridelayout弹上来的时候是波纹的。




直接上代码。
public class MyBlurPopWin extends BlurPopupWindow
{
    Context mContext;
    GridLayout gridLayout;
    SpringChain springChain;
    Button close]]></description><category></category></item><item><title><![CDATA[SpringChain 联合弹簧效果，rebounds。]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/67632058</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/67632058</guid><author>sinat_35657236</author><pubDate>Tue, 28 Mar 2017 09:44:43 +0800</pubDate><description><![CDATA[SpringChain chain =SpringChain.create(40,6,50,7);
for(int i=0;i<mTextViews.size();i++){
    final TextView view = mTextViews.get(i);
    final int  index = i;
    chain.addSpring(new SimpleSpringListe]]></description><category></category></item><item><title><![CDATA[安卓网络请求。]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/66973795</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/66973795</guid><author>sinat_35657236</author><pubDate>Mon, 27 Mar 2017 17:27:37 +0800</pubDate><description><![CDATA[api23以后 安卓剔除了httpclient
今天我用了httpurlconntion，使用get方法是简单的，只要获得他的输入流，然后读取就好了
但是用post方法却用不来，用输出流往里面输出东西，服务端取出来的数据也很奇怪
也不是完全没有收获吧，知道了httpurlconntion.openConnection()，httpurlconntion.connec()，只是获得链接，并没有]]></description><category></category></item><item><title><![CDATA[安卓4.4以前不能直接调用js获取返回值，解决方法]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/65445391</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/65445391</guid><author>sinat_35657236</author><pubDate>Thu, 23 Mar 2017 16:50:13 +0800</pubDate><description><![CDATA[安卓4.4以前用类似这种调用js获得返回数据
webView.evaluateJavascript("getGreetings()", new ValueCallback() {

  @Override
  public void onReceiveValue(String value) {
      Log.i(LOGTAG, "onReceiveValue value=" + value]]></description><category></category></item><item><title><![CDATA[ViewDragHelper使用模板]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/54290589</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/54290589</guid><author>sinat_35657236</author><pubDate>Mon, 09 Jan 2017 17:00:28 +0800</pubDate><description><![CDATA[public class DragViewGroup extends FrameLayout {

    private ViewDragHelper mViewDragHelper;
    private View mMenuView, mMainView;
    private int mWidth;

    public DragViewGroup(Context context) ]]></description><category></category></item><item><title><![CDATA[surfaceView使用模板。]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/54290490</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/54290490</guid><author>sinat_35657236</author><pubDate>Mon, 09 Jan 2017 16:52:27 +0800</pubDate><description><![CDATA[public class MySurferViewSImpleDraw extends SurfaceView implements SurfaceHolder.Callback,Runnable {
    private Canvas mCanvas;
    private Paint mPaint;
    private SurfaceHolder mHolder;
    privat]]></description><category></category></item><item><title><![CDATA[安卓群英传 _个人笔记]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/53954361</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/53954361</guid><author>sinat_35657236</author><pubDate>Sat, 31 Dec 2016 11:21:53 +0800</pubDate><description><![CDATA[第三章：
1.Activity
phoneView
decorView
titleView
contentView
  requestWindowFeature(Window.Feature_no_title)设置全屏，必须在setContent方法前面设置。


2.自定义View的onMeasure方法
ModeType--exactly,指定的大小或者match-pare]]></description><category></category></item><item><title><![CDATA[实现一个简单的自定义Dialog弹窗。]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/53928284</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/53928284</guid><author>sinat_35657236</author><pubDate>Thu, 29 Dec 2016 15:20:38 +0800</pubDate><description><![CDATA[自己看了一些资料之后，这个是自己算是第一个比较有点用的自定义控件了吧。
谢了这个之后，对接口回调的理解也有一定的帮助。




不说了，贴代码。比较懒，偷懒了很多。


//这里注意，oncreate方法在dialog.show（）之后才会运行，所以要动态设置一些属性的话，必须放在oncreate中，不然会报空。

public class MyDialog extends ]]></description><category></category></item><item><title><![CDATA[使用AlertDialog弹窗实现相机拍照或者从图库选取图片显示]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/53333379</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/53333379</guid><author>sinat_35657236</author><pubDate>Fri, 25 Nov 2016 13:40:39 +0800</pubDate><description><![CDATA[通过图库选图片主要就是onActivityResult方法中返回的intent中获取Uri，再根据Uri和指定列名使用contentProvider去查找出此图片的路径
使用相机拍照显示之前一篇文章已经有描述，此篇文章不对图片的大小进行处理






代码：
import java.io.File;
import java.io.IOException;
import java]]></description><category></category></item><item><title><![CDATA[使用intent调用系统相机拍照保存在sdcard并且压缩后显示]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/53263040</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/53263040</guid><author>sinat_35657236</author><pubDate>Mon, 21 Nov 2016 19:45:04 +0800</pubDate><description><![CDATA[首先使用intent，指定action调用相机，用生成指定的日期文件名保存在sdcard上，Uri通过Uri.fromFile,获得uri，并且将这个putextra里，然后startactivityforresult，启动相机拍照。


弄个路径的全局变量，当返回码是result_ok的时候，对图片进行压缩，并显示在imageview上
注意，获得图片大小，设置option.inJust]]></description><category></category></item><item><title><![CDATA[自定义View（二） （attrs）]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/53173131</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/53173131</guid><author>sinat_35657236</author><pubDate>Tue, 15 Nov 2016 16:48:01 +0800</pubDate><description><![CDATA[自己定义的名字	
    	属性				表示资源的引用和资源下Color的引用（其实可以只写一个reference）
        		枚举	这样在布局文件中用到attr的话就可以直接使用name
            
                
        
        				布尔类型
        				
        					定义大小
        
    ]]></description><category></category></item><item><title><![CDATA[安卓启动界面 Handler.postDelay]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/53089464</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/53089464</guid><author>sinat_35657236</author><pubDate>Tue, 08 Nov 2016 22:29:19 +0800</pubDate><description><![CDATA[new Handler().postDelayed(new Runnable() {  
            public void run() {  
                /* Create an Intent that will start the Main WordPress Activity. */  
                Intent mainIntent =]]></description><category></category></item><item><title><![CDATA[自定义View(一)]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/53072170</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/53072170</guid><author>sinat_35657236</author><pubDate>Mon, 07 Nov 2016 21:40:25 +0800</pubDate><description><![CDATA[public class MyView extends View {
	
	private Paint paint=new Paint();
	
	
	public MyView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}
	]]></description><category></category></item><item><title><![CDATA[messenger，client和server通信Demo]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/52869838</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/52869838</guid><author>sinat_35657236</author><pubDate>Thu, 20 Oct 2016 10:38:55 +0800</pubDate><description><![CDATA[Serverpublic class MessengerService extends Service {
	
	private Handler handle=new Handler(){
		public void handleMessage(Message msg) {
			//获得传过来的messenger，用来向客户端发送数据
			Messenger replayTo=msg.repl]]></description><category></category></item><item><title><![CDATA[sychronized  同步的等待和唤醒锁的状态]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/52864757</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/52864757</guid><author>sinat_35657236</author><pubDate>Wed, 19 Oct 2016 23:01:27 +0800</pubDate><description><![CDATA[public class MythreadWaitNotify implements Runnable {
	int i=0;
	String name;
	static Object o=new Object();
	public MythreadWaitNotify(int i,String name){
		this.i=i;
		this.name=name;
	}
	/**
	 * 两个]]></description><category></category></item><item><title><![CDATA[线程syncronized（Object）的 使用]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/52863594</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/52863594</guid><author>sinat_35657236</author><pubDate>Wed, 19 Oct 2016 21:31:37 +0800</pubDate><description><![CDATA[一、public class MyThread implements Runnable {
	int ticket=10;
	/**
	 * 如果是两个都是str堆引用的话，进入同步块之后改变值，还是异步
	 */
	String str="abc";

	public  void run() {
		synchronized(str){
			str="sss";
			while(ticket]]></description><category></category></item><item><title><![CDATA[记 JsonToMap MapToJson BeanToJson JsonToBean]]></title><link>https://blog.youkuaiyun.com/sinat_35657236/article/details/52863466</link><guid>https://blog.youkuaiyun.com/sinat_35657236/article/details/52863466</guid><author>sinat_35657236</author><pubDate>Wed, 19 Oct 2016 21:17:27 +0800</pubDate><description><![CDATA[public class JSONUtil {

	public static String mapToJson(Map map)
			throws JSONException {
		JSONObject jo = new JSONObject();
		for (String key : map.keySet())
			jo.put(key, map.get(key));
		return]]></description><category></category></item></channel></rss>