<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[noige的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/noige</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; noige]]></copyright><item><title><![CDATA[沉侵式封装]]></title><link>https://blog.youkuaiyun.com/noige/article/details/89134751</link><guid>https://blog.youkuaiyun.com/noige/article/details/89134751</guid><author>noige</author><pubDate>Tue, 09 Apr 2019 09:43:21 +0800</pubDate><description><![CDATA[//直接复制可用

public class StatusBarUtil {
    /**
     * 将acitivity中的状态栏设置为一个纯色
     *
     * @param activity 需要设置的activity
     * @param color    设置的颜色（一般是titlebar的颜色）
     */
    public static void se...]]></description><category></category></item><item><title><![CDATA[第三方控件PullToRefreshScrollView进入自动刷新，到底部自动加载]]></title><link>https://blog.youkuaiyun.com/noige/article/details/89103824</link><guid>https://blog.youkuaiyun.com/noige/article/details/89103824</guid><author>noige</author><pubDate>Mon, 08 Apr 2019 19:47:04 +0800</pubDate><description><![CDATA[//日常笔记：早期项目使用PullToRefreshScrollView进行上下拉，后期公司需求有更改，换用其它控件工作量又太大，所以选择简单修改一下。

//如若只需进入时自动刷新可以直接使用框架中的


pull.setRefreshing();



//简单说下我修改的地方吧

1.在 IPullToRefresh 中添加


public void setRefreshing(Pull...]]></description><category></category></item><item><title><![CDATA[Android：Gson解析——从简单数据到复杂数据]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80387760</link><guid>https://blog.youkuaiyun.com/noige/article/details/80387760</guid><author>noige</author><pubDate>Mon, 21 May 2018 08:53:11 +0800</pubDate><description><![CDATA[Json是一种轻量级的数据交换语言，以文字为基础，且易于让人阅读和编写，同时也易于机器解析和生成，因而在客户端与服务器交互中得到广泛应用。但Json自带的解析类用起来却差强人意，所以市面上因运而生了很多Json转换利器，本文主要介绍其中之一Gson。Gson是google发布的library，主要为了方便将Java对象序列化Serialization至轻量化的封包格式JSON，提供了很多方便快捷的...]]></description><category></category></item><item><title><![CDATA[listview 分页加载]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80235005</link><guid>https://blog.youkuaiyun.com/noige/article/details/80235005</guid><author>noige</author><pubDate>Tue, 08 May 2018 09:44:35 +0800</pubDate><description><![CDATA[/**
 * 模拟请求数据
 */
public class DataServer {
    private static List&amp;lt;String&amp;gt; data=new ArrayList&amp;lt;String&amp;gt;();
    public static List&amp;lt;String&amp;gt; getData(int offset, int maxnumber) {
        ...]]></description><category></category></item><item><title><![CDATA[AndroidStudio 混淆打包]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80088575</link><guid>https://blog.youkuaiyun.com/noige/article/details/80088575</guid><author>noige</author><pubDate>Thu, 26 Apr 2018 08:51:49 +0800</pubDate><description><![CDATA[AndroidStudio中的项目可以用compile的形式引入github上的开源项目，可以引用module，而不一定都要用libs文件夹中添加jar包的形式。在最终realease打包时，混淆的设置是比较重要的，否则会导致生成的包有很多功能不能正常使用。下面列举一个基本的app的build.gradle和混淆文件。并注意，混淆打包后的apk文件大小会比不使用混淆要小。在app根目录下设置bui...]]></description><category></category></item><item><title><![CDATA[Android Studio 打包混淆]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80088548</link><guid>https://blog.youkuaiyun.com/noige/article/details/80088548</guid><author>noige</author><pubDate>Thu, 26 Apr 2018 08:49:15 +0800</pubDate><description><![CDATA[前言在使用Android Studio混淆打包时，该IDE自身集成了Java语言的ProGuard作为压缩，优化和混淆工具，配合Gradle构建工具使用很简单。只需要在工程应用目录的gradle文件中设置minifyEnabled为true即可。然后我们就可以到proguard-rules.pro文件中加入我们的混淆规则了。ProGuard作用压缩（Shrinking）：默认开启，用以减小应用体积...]]></description><category></category></item><item><title><![CDATA[Android 版本更新]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80063419</link><guid>https://blog.youkuaiyun.com/noige/article/details/80063419</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 13:44:19 +0800</pubDate><description><![CDATA[//首先自行判断版本号是否需要升级，这里就不做判断了private void downFile(final String url) {
    new Thread(){
        @Override
        public void run() {
            super.run();
            DownloadUtil.get().download(url...]]></description><category></category></item><item><title><![CDATA[SharedPreferences 存储Bitmap]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80063361</link><guid>https://blog.youkuaiyun.com/noige/article/details/80063361</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 13:31:31 +0800</pubDate><description><![CDATA[存储SharedPreferences sharedPreferences = context.getSharedPreferences(&quot;Bitmap&quot;,Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
ByteArrayOutputStream bos = new ByteArray...]]></description><category></category></item><item><title><![CDATA[Bitmap转Drawable]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80063329</link><guid>https://blog.youkuaiyun.com/noige/article/details/80063329</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 13:29:05 +0800</pubDate><description><![CDATA[Drawable drawable = new BitmapDrawable(bitmap);  或者BitmapDrawable bd= new BitmapDrawable(getResource(), bm);      ]]></description><category></category></item><item><title><![CDATA[Drawable 转Bitmap]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80063303</link><guid>https://blog.youkuaiyun.com/noige/article/details/80063303</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 13:25:47 +0800</pubDate><description><![CDATA[public static Bitmap drawableToBitmap(Drawable drawable) {
    int w = drawable.getIntrinsicWidth();
    int h = drawable.getIntrinsicHeight();
    Bitmap.Config config = drawable.getOpacity() != Pixe...]]></description><category></category></item><item><title><![CDATA[获取手机像素，密度和宽高（dp）]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80062014</link><guid>https://blog.youkuaiyun.com/noige/article/details/80062014</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 11:27:44 +0800</pubDate><description><![CDATA[//                获取手机像素，密度和宽高（dp）
                WindowManager wm = (WindowManager) MainActivity.this.getSystemService(Context.WINDOW_SERVICE);
                DisplayMetrics dm = new DisplayMetrics...]]></description><category></category></item><item><title><![CDATA[创建AlertDialog]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80060634</link><guid>https://blog.youkuaiyun.com/noige/article/details/80060634</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 10:20:07 +0800</pubDate><description><![CDATA[ LayoutInflater factory = LayoutInflater.from(Activity.this);
                            View myView = factory.inflate(R.layout.lialog,null);
                            final LinearLayout linearLayo...]]></description><category></category></item><item><title><![CDATA[帧动画实现]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80060525</link><guid>https://blog.youkuaiyun.com/noige/article/details/80060525</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 10:17:01 +0800</pubDate><description><![CDATA[&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;animation-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:oneshot=&quot;false&quot;&amp;gt;
    &amp;lt;item
        android:drawable=&qu]]></description><category></category></item><item><title><![CDATA[获取屏幕宽高以及密度]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80060489</link><guid>https://blog.youkuaiyun.com/noige/article/details/80060489</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 10:12:17 +0800</pubDate><description><![CDATA[public class DisplayUtil
{

    public static int screenWidthPx; //屏幕宽 px
    public static int screenhightPx; //屏幕高 px
    public static float density;//屏幕密度
    public static int densityDPI;//屏幕密度
 ...]]></description><category></category></item><item><title><![CDATA[MVC模式mode]]></title><link>https://blog.youkuaiyun.com/noige/article/details/80060422</link><guid>https://blog.youkuaiyun.com/noige/article/details/80060422</guid><author>noige</author><pubDate>Tue, 24 Apr 2018 10:09:37 +0800</pubDate><description><![CDATA[ Android Studio的MVC模式，顾名思义就是Model，View，Controller，三个部分。开发时尽量将三个部分分开，这样修改代码时，可以做到只修改一个部分，不用大动干戈。接口KpListener.javapublic interface KpListener {      void onSucess(String response);  }  接口Kpmodel.javapub...]]></description><category></category></item><item><title><![CDATA[仿微信上传图片]]></title><link>https://blog.youkuaiyun.com/noige/article/details/79419444</link><guid>https://blog.youkuaiyun.com/noige/article/details/79419444</guid><author>noige</author><pubDate>Fri, 02 Mar 2018 09:27:02 +0800</pubDate><description><![CDATA[public class GridViewAdapter extends BaseAdapter {
    private Context context;
    private List&amp;lt;MyBitmapData&amp;gt; list;

    public GridViewAdapter(Context context, List&amp;lt;MyBitmapData&amp;gt; list) {...]]></description><category></category></item><item><title><![CDATA[相册拍照上传]]></title><link>https://blog.youkuaiyun.com/noige/article/details/79383472</link><guid>https://blog.youkuaiyun.com/noige/article/details/79383472</guid><author>noige</author><pubDate>Tue, 27 Feb 2018 08:50:24 +0800</pubDate><description><![CDATA[public class MyActivity extends AppCompatActivity {
    private GridView gridView1;              //网格显示缩略图
    private Button buttonPublish;            //发布按钮
    private final int IMAGE_OPEN = 1;    ...]]></description><category></category></item><item><title><![CDATA[视屏播放插件]]></title><link>https://blog.youkuaiyun.com/noige/article/details/79359233</link><guid>https://blog.youkuaiyun.com/noige/article/details/79359233</guid><author>noige</author><pubDate>Sat, 24 Feb 2018 10:28:07 +0800</pubDate><description><![CDATA[compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'fm.jiecao:jiecaovideoplayer:4.8.3'
compile 'com.zhy:base-adapter:3.0.3'&amp;lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&amp;gt...]]></description><category></category></item><item><title><![CDATA[线程池]]></title><link>https://blog.youkuaiyun.com/noige/article/details/79358474</link><guid>https://blog.youkuaiyun.com/noige/article/details/79358474</guid><author>noige</author><pubDate>Sat, 24 Feb 2018 09:11:43 +0800</pubDate><description><![CDATA[//        创建一个总长度为5的线程池，主线程数为3
//        ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor( 3, 5, 1, TimeUnit.SECONDS, new LinkedBlockingDeque&amp;lt;Runnable&amp;gt;(128));
//        创建一个总长度为3的线程池
   ...]]></description><category></category></item><item><title><![CDATA[OkHttp同步异步请求]]></title><link>https://blog.youkuaiyun.com/noige/article/details/79358446</link><guid>https://blog.youkuaiyun.com/noige/article/details/79358446</guid><author>noige</author><pubDate>Sat, 24 Feb 2018 09:08:06 +0800</pubDate><description><![CDATA[ OkHttpClient okHttpClient = new OkHttpClient();
        FormBody.Builder builder = new FormBody.Builder();
        builder.add(&quot;key&quot;,&quot;value&quot;);
        FormBody body = builder.build();
        Request...]]></description><category></category></item></channel></rss>