RK 平台修改系统文件夹图

 /launcher2/src/com/android/mitechlauncher/FolderIcon.java
导入包:
//zoulequan
import android.app.Activity;
import android.util.Log; 
import java.util.Locale;
//end

定义变量
//zoulequan add
private static Context mContext; 
private static int strid[]={R.string.Puzzle,R.string.Learning,R.string.Entertainment,R.string.Games,R.string.TabeoApps,R.string.TabeoBrowser,R.string.Books,R.string.Education};
private static int iconid[]={-1,-1,R.drawable.entertainment,R.drawable.games_dice,R.drawable.appstore,R.drawable.browser,R.drawable.books,R.drawable.education}; 
private static String arrFilename[]={"Puzzle","Learning","Entertainment","Games","Tabeo Apps","Tabeo Browser","Books","Education"};
private static String arrFilename2[]={"Puzzle","Learning","Entertainment","Games","Tabeo Apps","Tabeo Browser","Books","Education"};
private static String languagelast="en";
private static String languagecurrent="en"; 
    //end
如何要添加新的文件夹图标,就在以上四个数组中一一对应填写R.string,R.drwable,第一次加载的文件名。然后再去res文件下添加相关资源文件

 protected void dispatchDraw(Canvas canvas)
{super.dispatchDraw(canvas);
在这个方法最前面加上 

//zoulequan
boolean isdrop=false;
for(int i=0;i<arrFilename.length;i++){
if(arrFilename[i].equals(mFolderName.getText().toString()) && iconid[i]!=-1){            
isdrop=true;
break;
}else{
             isdrop=false;
            }
}
        if(isdrop){
         return;
        } 
        //end 
isdrop用来标识此文件夹是否要阻止画很多APK叠加后的图标。
}
添加方法:
//zoulequan
private static boolean changeicon(String filename,int stringid,int imgic,FolderInfo mfod,FolderIcon micon,int i){
String str=null;
languagecurrent=Locale.getDefault().getLanguage(); 
if(languagelast.equals(languagecurrent)){
str=arrFilename[i]; 
}else{
str=arrFilename2[i];
for(int j=0;j<arrFilename2.length;j++){ 
arrFilename[j]=arrFilename2[j];
}
languagelast=languagecurrent;
}
if(str.equals(mfod.title)){ 
str=(((Activity)mContext).getText(stringid)).toString();
mfod.setTitle(str);
arrFilename[i]=str;  
if(imgic!=-1){
micon.mPreviewBackground.setImageResource(imgic);    
}
return true;
}
return false;
}

在icon.mPreviewBackground = (ImageView) icon.findViewById(R.id.preview_background);
这条语句后面加上
//zoulequan
for(int i=0;i<iconid.length;i++){
if(changeicon(arrFilename[i],strid[i],iconid[i],folderInfo,icon,i)){   
break;
}
}
     icon.mFolderName.setText(folderInfo.title); 
//end
FolderIcon.java

当选择语言时,mfod.title的值会被附为第一次的文件夹名,和arrFilename2数组里的值一样,这个值是第一次创建文件夹时被保存在数据库中的文件夹名。而foldericon这个类里面我们定义的数组里的值不会被还原,fromXml()这个方法运行之后才会运行 protected void dispatchDraw(Canvas canvas)方法,所以fromXml方法中改过icon.mFolderName.setText(folderInfo.title)后,dispatchDraw()中mFolderName.getText()的值就是fromXml方法改过后的值。
//文件夹默认大小
/launcher2/res/values/config.xml
<integer name="folder_max_count_x">4</integer>
<integer name="folder_max_count_y">4</integer>
<integer name="folder_max_num_items">16</integer>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值