笔记82 | Launcher常用修改(重修版)

1.替换APP图标

笔记82 | Launcher常用修改(重修版)


2.自定义APP/小部件栏

笔记82 | Launcher常用修改(重修版)

笔记82 | Launcher常用修改(重修版)


3.直接控制APP图标大小

笔记82 | Launcher常用修改(重修版)


4.当需要在APP列表界面给APP图标加个外框时,此属性用于调节内边距

笔记82 | Launcher常用修改(重修版)


5.用于APP列表界面APP排列的行数与列数

笔记82 | Launcher常用修改(重修版)


6.调节APP与名称的距离

笔记82 | Launcher常用修改(重修版)


7.主界面可以滑动的页面

笔记82 | Launcher常用修改(重修版)


8.主界面快捷图标的排列行数与列数

笔记82 | Launcher常用修改(重修版)


9.控制APP所在布局所占宽度和高度

笔记82 | Launcher常用修改(重修版)


10.主界面切换条

10.1全界面

笔记82 | Launcher常用修改(重修版)

10.2Workspace

笔记82 | Launcher常用修改(重修版)


11.默认壁纸

笔记82 | Launcher常用修改(重修版)

    public void initWallPaper(){

        SharedPreferences sp = getSharedPreferences(TAG, Context.MODE_PRIVATE);

        if(!sp.getBoolean("initwallpaper", false))

        {

            WallpaperManager wpm = (WallpaperManager)getSystemService(

                    Context.WALLPAPER_SERVICE);

            try {

                wpm.setResource(R.drawable.bg);

            } catch (IOException e) {

                e.printStackTrace();

            }

            sp.edit().putBoolean("initwallpaper", true).commit();

        }

    }

12.添加收音内容插件

笔记82 | Launcher常用修改(重修版)

12.0 系统默认的插件
12.1
//mHandler中接收收音数据
private final Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
                  if (msg.what == 0x0401) {
                        byte obj [] = (byte[]) msg. obj;
                        int band = obj [1 ] & 0x7;
                        int freq = ((obj[ 2] & 0xff)<< 8) | ( obj[ 3] & 0xff);
                        if((mBand != band ) || (mFreq != freq)) {
                              mBand = band ;
                              mFreq = freq ;
                              showRadio();
                        }
                  }
            }
    };
      private int mBand;
      private int mFreq;
      private void showRadio(){
            if (mBand == 2 ) {
                  ((TextView)findViewById(R.id.tv_radio)).setText(getResources().getString(R.string.am1)+" "+String .format( Locale .US , "%d" , mFreq ));
            } else {
                  ((TextView)findViewById(R.id.tv_radio)).setText(getResources().getString(R.string.fm)+" "+String .format( Locale .US , "%.2f" , (float )(mFreq / ( float) 100.0)));
            }
      }
12.2
//onClick中发切换指令
                        case R.id.fm_next:{
                             mTWUtil.write(0x0301, (1<<7) | (1<<6), 0x01);
                              mTWUtil.write(0x0401, 0x01, 0x00);
                              break;
                        }

                        case R.id.fm_prev:{
                              mTWUtil.write(0x0301, (1<<7) | (1<<6), 0x01);
                              mTWUtil.write(0x0401, 0x01, 0x01);
                              break;
                        }

13.添加时间内容插件

笔记82 | Launcher常用修改(重修版)

13.0 系统默认的插件
        <appwidget
            launcher:className="com.android.launcher2.TimeWidget"
            launcher:container="-100"
            launcher:packageName="com.android.launcher"
            launcher:screen="0"
            launcher:spanX="3"
            launcher:spanY="2"
            launcher:x="0"
            launcher:y="0" />
13.1 获取时间内容 年月日 星期 上/下午
      protected void showDate() {
            try {
                  Calendar c = Calendar.getInstance();
                  int h = c.get(Calendar.HOUR_OF_DAY);
                  int m = c.get(Calendar.MINUTE);
                  int apm = c.get(Calendar.AM_PM);
                  SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd"); //可以定制显示时间格式 "yyyy-MM-dd" "yyyy/MM/dd" 
                  Date currentTime = new Date();
                  String dateString = formatter.format(currentTime);
                  //String d = DateFormat.getDateInstance().format(c.getTime()); //默认显示时间格式
                  String w = c.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
                  ((TextView)findViewById(R.id.tvDate)).setText(dateString+" "+w);
                  boolean is24 =  android.text.format.DateFormat.is24HourFormat(this);
                  if(is24){
                        ((TextView)findViewById(R.id.tvampm)).setVisibility(View.GONE);
                  }else{
                        ((TextView)findViewById(R.id.tvampm)).setVisibility(View.VISIBLE);
                        if(apm == 1){
                              ((TextView)findViewById(R.id.tvampm)).setText(getResources().getString(R.string.pm));
                        }else{
                              ((TextView)findViewById(R.id.tvampm)).setText(getResources().getString(R.string.am));
                        }
                        if(h<=12){
                              if(h==0)
                                    h=12;
                        }else if(h>12){
                              h = h-12;
                        }
                  }
                  if(h<10){
                        ((ImageView)findViewById(R.id.tvTime0)).getDrawable().setLevel(0);
                        ((ImageView)findViewById(R.id.tvTime1)).getDrawable().setLevel(Integer.parseInt((h+"").substring(0, 1)));
                  }else{
                        ((ImageView)findViewById(R.id.tvTime0)).getDrawable().setLevel(Integer.parseInt((h+"").substring(0, 1)));
                       ((ImageView)findViewById(R.id.tvTime1)).getDrawable().setLevel(Integer.parseInt((h+"").substring(1, 2)));
                  }
                  if(m<10){
                        ((ImageView)findViewById(R.id.tvTime2)).getDrawable().setLevel(0);
                        ((ImageView)findViewById(R.id.tvTime3)).getDrawable().setLevel(Integer.parseInt((m+"").substring(0, 1)));
                  }else{
                        ((ImageView)findViewById(R.id.tvTime2)).getDrawable().setLevel(Integer.parseInt((m+"").substring(0, 1)));
                        ((ImageView)findViewById(R.id.tvTime3)).getDrawable().setLevel(Integer.parseInt((m+"").substring(1, 2)));
                  }
           } catch (Exception e) {
                  Log.i("md", "e: "+e.toString());
                  e.printStackTrace();
            }
      }

13.2 时间更新监听

13.2.1 动态注册监听广播
            IntentFilter t = new IntentFilter();
            t.addAction(Intent.ACTION_TIME_TICK);
            t.addAction(Intent.ACTION_TIME_CHANGED);
            t.addAction(Intent.ACTION_TIMEZONE_CHANGED);
            registerReceiver(mTimeReceiver, t);
13.2.2 监听广播
            private BroadcastReceiver mTimeReceiver = new BroadcastReceiver() {
                @Override

            public void onReceive(Context context, Intent intent) {
                  showDate();
            }
      };

14. 添加音乐内容插件

14.0系统默认的插件
   <appwidget
        launcher:className="com.tw.music.MusicWidgetProvider"
        launcher:container="-100"
        launcher:packageName="com.tw.music"
        launcher:screen="0"
        launcher:spanX="3"
        launcher:spanY="2"
        launcher:x="3"
        launcher:y="0" />