0%

直接上代码了:

    public static boolean isContainChinese(String str) {

        Pattern p=Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m=p.matcher(str);
        if(m.find())
        {
            return true;
        }
        return false;
    }

官方FAQ:https://github.com/excilys/androidannotations/wiki/FAQ#wiki-import 他们说是Eclipse的Bug,也提供了解决方法: 1、import直接导入整个包,而不是具体的类 2、使用的时候,使用全路径,包括包名,不用import 如果用第一种方法,当使用ctrl+shif+o自动导入会,会被自动换回import具体的类,所以建议使用第二种方法

好吧,我承认不知道自己想要什么样的未来,总之,从今天起,我开始学设计了。 常用快捷键,其实不应该叫常用,因为这只是我个人笔记,所以,那些我记住的,常用的,不会记录,这里记的只是能提高工作效率,我之前用的又比较少,没记住的。列表不定期更新。 f 切换显示模式,按一下,photoshop全屏,再按一下,全屏,并且隐藏除了画板外的所有窗口(传说中的专家模式,没有菜单,工具箱,只能快捷键操作),再按一次,默认模式。 ctrl+0 满屏显示画板(适合屏幕) alt+ctrl+0 实际像素 ctrl+’ 显示网格(跟搜狗输入法冲突) ctrl+k 首选项,再按ctrl+数字,切换首选项,如参考线、网格和切片是ctrl+8 ctrl+r 显示标尺 ctrl+; 显示隐藏辅助线 ctrl+tab 切换当前显示的工作区(文档) [或] 缩小或放大笔触(针对画笔,铅笔等工具) shift+[或shift+] 笔触变软或变硬,每次调节25% shift+工具快捷键,切换隐藏的工具,如 shift+m,可以在椭圆选框和矩形选框之间切换 d 恢复默认前背景颜色 x 对调前背景颜色 ctrl+backspace 对选区填充背景色 alt+backspace 对选择填充前景色 alt+shift+backspace 对非透明像素填充前景色(针对图层,非选区) ctrl+shift+backspace 对非透明像素填充背景色(针对图层,非选区) ctrl+alt+z 撤销操作(ctrl+z只能撤销一次),跟QQ好像冲突了 ctrl+shift+z 重做(取消撤销) ctrl+: 隐藏辅助线 ctrl+shift+n 打开新建图层对话框 ctrl+shift+alt+n 直接新建图层(与ctrl+shift+n后直接按回车效果相同) sihift+F6 羽化选区 alt+s,t 变换选区 ctrl+t 自由变换,与变换选区有点区别 ctrl+[,] 调整图片z座标,即移动图层位置,ctrl+[为移动到下一层,ctrl+]为移动到上一层 ctrl+e 合并选中图层 ctrl+j 如果当前图层有选区,新建图层并复制该选区,如果没有选区,则复制图层 ctrl+上下箭头 在使用文字工具时,调节行距 ctrl+左右箭头 在使用文字工具时,调节间距 alt+l,y,c 复制图层所有样式 alt+l,y,p 粘贴图层样式 ctrl+u 打开色相,饱合度调节对话框 ctrl+h 隐藏路径 ctrl+enter 路径(贝塞尔)转选区 使用选区工具时,按住alt键,可以使选择区域以鼠标落点为中心,向四周扩展 ctrl+t 自由变换时: 按住ctrl键 扭曲 按住ctrl+shift键 斜切 按住ctrl+shift+alt 透视

清除Column:

int columns = table_set.getColumns().length;
for (int i = 0; i < columns; i++) {
    table_set.getColumns()[table_set.getColumnOrder()[0]].dispose();
}

清除Item:

table_set.removeAll();

因为对TableItem有特殊需求,继续了默认的TableItem,写个一个自定义的TableItem,但是运行时报Subclassing not allowed。解决方法:重写父类的checkSubclass方法,方法体空就可以了:

    @Override
    protected void checkSubclass() {
        // TODO 自动生成的方法存根
    }

百度没有提供直接可用的翻译api,有道倒是有,不过只能英译中,不支持其他语言。但是百度自己有个翻译服务,http://fanyi.baidu.com/,使用的时候,页面并不会刷新,而是用ajax调用了一个翻译API,分析了一下,这个api地址是http://fanyi.baidu.com/transapi,接受三个参数,from,to,query分别是源语言,目标语言,待翻译文本。 简单封装了一下,默认中译英,要改其他语言,可以把参数提出来:

package com.pocketdigi.english;

import java.net.URLEncoder;

import model.TranslateMode;

import com.google.gson.Gson;
import common.HttpGet;

public class TranslateApi {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        String dst=translate("百度翻译API测试");
        System.out.println(dst);
        
    }
    public static String translate(String source)
    {
        String api_url;
        try {
            api_url = new StringBuilder("http://fanyi.baidu.com/transapi?from=zh&to=en&query=")
            .append(URLEncoder.encode(source,"utf-8")).toString();
            String json=HttpGet.getHtml(api_url, "utf-8");
            Gson gson=new Gson();
            TranslateMode translateMode=gson.fromJson(json, TranslateMode.class);
            
            if(translateMode!=null&&translateMode.getData()!=null&&translateMode.getData().size()==1)
            {
                return translateMode.getData().get(0).getDst();
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    
}

TranslateMode:

package model;

import java.util.List;

public class TranslateMode {
    String from,to;
    List data;
    public class Data{
        String dst,src;

        public String getDst() {
            return dst;
        }

        public void setDst(String dst) {
            this.dst = dst;
        }

        public String getSrc() {
            return src;
        }

        public void setSrc(String src) {
            this.src = src;
        }
        
    }
    public String getFrom() {
        return from;
    }
    public void setFrom(String from) {
        this.from = from;
    }
    public String getTo() {
        return to;
    }
    public void setTo(String to) {
        this.to = to;
    }
    public List getData() {
        return data;
    }
    public void setData(List data) {
        this.data = data;
    }
    
}

SlidingMenu是一个开源项目,https://github.com/jfeinstein10/SlidingMenu。功能是创建侧边滑动菜单栏,效果类似人人Android客户端,可点击按钮或是在屏幕上划动来展开,收缩侧边的菜单。下面是Demo效果图: device-2013-06-25-143031 简单介绍一下:整个demo由三个Fragment,一个Activity组成,菜单一个Fragment,包含两个按钮,在内容区域切换显示FragmentA和FragmentB. 项目用了AndroidAnnotations框架。 MainActivity:

package com.pocketdigi.slidingmenudemo;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;

import com.googlecode.androidannotations.annotations.AfterViews;
import com.googlecode.androidannotations.annotations.EActivity;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.pocketdigi.fragment.FragmentA_;
import com.pocketdigi.fragment.FragmentB_;
import com.pocketdigi.fragment.MenuFragment_;


@EActivity(R.layout.layout_content)
public class MainActivity extends FragmentActivity {
    Fragment fragmentA, fragmentB, menuFragment;
    SlidingMenu menu;

    @AfterViews
    public void afterViews() {
        //添加左侧菜单
        menuFragment = new MenuFragment_();
        menu = new SlidingMenu(this);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setShadowDrawable(R.drawable.shadow);
        menu.setShadowWidthRes(R.dimen.shadow_width);
        //设置拉出菜单后,上层内容留下的宽度,即这个宽度+菜单宽度=屏幕宽度
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        //设置隐藏或显示菜单时,菜单渐变值,0,不变,1黑色,值为0-1
        menu.setFadeDegree(0f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        menu.setMenu(R.layout.layout_menu);
        
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.layout_menu, menuFragment).commit();
        
        //显示FragmentA
        showFragmentA();
    }

    /**
     * 捕捉返回键,如果当前显示菜单,刚隐藏
     */
    @Override
    public void onBackPressed() {
        if (menu.isMenuShowing()) {
            menu.showContent();
        } else {
            super.onBackPressed();
        }
    }
    
    public void showFragmentA()
    {
        if(fragmentA==null)
        {
            fragmentA = new FragmentA_();
        }
        if(!fragmentA.isVisible())
        {
            getSupportFragmentManager().beginTransaction()
            .replace(R.id.layout_content, fragmentA).commit();
        }
        menu.showContent(true);
    }
    
    public void showFragmentB()
    {
        if(fragmentB==null)
        {
            fragmentB = new FragmentB_();
        }
        if(!fragmentB.isVisible())
        {
            getSupportFragmentManager().beginTransaction()
            .replace(R.id.layout_content, fragmentB).commit();
        }
        menu.showContent(true);
    }


}

MenuFragment.java:

package com.pocketdigi.fragment;

import android.support.v4.app.Fragment;
import android.widget.Button;

import com.googlecode.androidannotations.annotations.AfterViews;
import com.googlecode.androidannotations.annotations.Click;
import com.googlecode.androidannotations.annotations.EFragment;
import com.googlecode.androidannotations.annotations.ViewById;
import com.pocketdigi.slidingmenudemo.MainActivity;
import com.pocketdigi.slidingmenudemo.R;

@EFragment(R.layout.fragment_menu)
public class MenuFragment extends Fragment {
    @ViewById
    Button btn_fragmentA,btn_fragmentB;
    MainActivity mainActivity;
    
    @AfterViews
    public void afterViews()
    {
        mainActivity=(MainActivity)getActivity();
    }
    
    @Click
    public void btn_fragmentA()
    {
        mainActivity.showFragmentA();
    }
    @Click
    public void btn_fragmentB()
    {
        mainActivity.showFragmentB();
    }
}

源码下载: [download id=”40”]

Sublime Text 2是免安装的,下载完解压就可以了。我这边解压路径是/home/fhp/App/SublimeText2 为了能在终端直接使用sublime打开文件,添加软链接: sudo ln -s /home/fhp/App/SublimeText2/sublime_text /usr/bin/sublime 添加desktop: sudo sublime /usr/share/applications/sublime.desktop [Desktop Entry] Version=1.0 Name=Sublime Text 2 GenericName=Text Editor Exec=sublime Terminal=false Icon=/home/fhp/App/SublimeText2/Icon/48×48/sublime_text.png Type=Application Categories=TextEditor;IDE;Development X-Ayatana-Desktop-Shortcuts=NewWindow [NewWindow Shortcut Group] Name=New Window Exec=sublime -n TargetEnvironment=Unity 修改文件关联: 编辑sudo sublime /usr/share/applications/defaults.list: 替换文件中所有gedit.desktop为sublime.desktop。

在Ubuntu下的Keepass,并非本地代码开发,而是用mono,C#写的,默认安装后打开数据库,如果数据库中有中文,就会显示乱码,其实,修改一下字体,设置中文字体就可以了。 Tools-Options-Interface-Select List Font,遗憾的是,中文字体名是乱码的,不过有几个是后面带GBK的,带GBK就一定是中文了。改完设置后,在编辑记录界面,中文还是乱码的,哪位同学搞定了,留个言吧~