Android高效率编码-细节,控件,架包,功能,工具,开源汇总
其实写博客的初衷也并不是说什么分享技术,毕竟咱还只是个小程序员,最大的目的就是对自我的知识积累,以后万一编码的时候断片了,也可以翻出来看看,这样子对自己也有好处,所以今天就汇总一下一些需要的东西。多图来了,加油!
一.游戏
小熊打字,我刚接触电脑练习打字的时候用到的
下载地址:http://download.csdn.net/detail/qq_26787115/9365721
二.色彩
这张颜色表上的颜色都太赞了
三.控件
1.TextView
//禁止换行
android:singleLine="true"
//字体滚动
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
/>
文本添加下划线
2.EditText
//只接收数字类型
android:numeric="integer"
//只接收电话类型
android:phoneNumber="true"
//密码效果
android:password="true"
4.隐藏ActionBar
getActionBar().hide();
方法2
privatelongexitTime=0;
直接上代码
注意添加各种权限
activity_main.xml
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical">
android:id="@+id/tab1_rl"
android:layout_width="match_parent"
android:layout_height="51dp"
android:background="#34c083">
android:id="@+id/tab1_btn01"
android:layout_width="wrap_content"
android:layout_height="51dp"
android:layout_centerHorizontal="true"
android:background="@null"
android:gravity="center"
android:text="手机信息"
android:textColor="@android:color/white"
android:textSize="20dp"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="IP:"/>
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="MAC地址:"/>
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="SD卡存储信息:"/>
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="手机分辨率:"/>
android:id="@+id/tv4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="网络是否连接:"/>
android:id="@+id/tv5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="手机内存:"/>
android:id="@+id/tv6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="手机CPU:"/>
android:id="@+id/tv7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="手机IMEI:"/>
android:id="@+id/tv8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"/>
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#aeaea9"/>
MainActivity.java
packagecom.lgl.circle;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importandroid.app.Activity;
importandroid.app.ActivityManager;
importandroid.app.ActivityManager.MemoryInfo;
importandroid.content.Context;
importandroid.net.ConnectivityManager;
importandroid.net.NetworkInfo;
importandroid.net.wifi.WifiInfo;
importandroid.net.wifi.WifiManager;
importandroid.os.Bundle;
importandroid.os.Environment;
importandroid.os.StatFs;
importandroid.telephony.TelephonyManager;
importandroid.text.format.Formatter;
importandroid.util.DisplayMetrics;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.TextView;
importandroid.widget.Toast;
importcom.lgl.circle.R;
publicclassAboutPhoneextendsActivity{
privateTextViewtv1,tv2,tv3,tv4,tv5,tv6,tv7,tv8;
privateString[]cpuInfo={"",""};//1-cpu型号//2-cpu频率
@Override
protectedvoidonCreate(BundlesavedInstanceState){
//TODOAuto-genwww.sm136.comeratedmethodstub
super.onCreate(savedInstanceState);
setContentView(R.layout.about_phone);
initView();
}
privatevoidinitView(){
tv1=(TextView)findViewById(R.id.tv1);
tv1.setText(getLocalIpAddress2());
tv2=(TextView)findViewById(R.id.tv2);
tv2.setText(getLocalMacAddress());
tv3=(TextView)findViewById(R.id.tv3);
//需要判断手机上面SD卡是否插好,如果有SD卡的情况下,我们才可以访问得到并获取到它的相关信息,当然以下这个语句需要用if做判断
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){
//取得sdcard文件路径
Filepath=Environment.getExternalStorageDirectory();
StatFsstatfs=newStatFs(path.getPath());
//获取block的SIZE
longblocSize=statfs.getBlockSize();
//获取BLOCK数量
longtotalBlocks=statfs.getBlockCount();
//空闲的Block的数量
longavailaBlock=statfs.getAvailableBlocks();
//计算总空间大小和空闲的空间大小
//存储空间大小跟空闲的存储空间大小就被计算出来了。
longavailableSize=blocSizeavailaBlock;
//(availableBlocksblockSize)/1024KIB单位
//(availableBlocksblockSize)/1024/1024MIB单位
longallSize=blocSizetotalBlocks;
tv3.setText("可用:"+availableSize/1024/1024/1024+"GB"
+"总共:"+allSize/1024/1024/1024+"GB");
}else{
tv3.setText("SD卡不可用");
}
tv4=(TextView)findViewById(R.id.tv4);
DisplayMetricsdisplayMetrics=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
tv4.setText("分辨率:"+displayMetrics.widthPixels+"x"
+displayMetrics.hewww.shanxiwang.netightPixels);
tv5=(TextView)findViewById(R.id.tv5);
ConnectivityManagerconnectivityManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfonetworkInfo=connectivityManager.getActiveNetworkInfo();
if(networkInfo==null||!networkInfo.isConnected()){
//info.setConnected(false);
tv5.setText("当前无网络");
}else{
//info.setConnected(true);
tv5.setText("当前网络正常");
}
tv6=(TextView)findViewById(R.id.tv6);
StringavailMemory=getAvailMemory();
StringtotalMemory=getTotalMemory();
tv6.setText("可用内存:"+availMemory+"\n"+"总内存:"+totalMemory);
tv7=(TextView)findViewById(R.id.tv7);
getCpuInfo();
tv7.setText("cpu型号:"+cpuInfo[0]+"\n"+"cpu频率:"+cpuInfo[1]);
tv8=(TextView)findViewById(R.id.tv8);
try{
TelephonyManagermTelephonyMgr=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
Stringimei=mTelephonyMgr.getDeviceId();
tv8.setText(""+imei);
}catch(Exceptione){
//TODO:handleexception
}
findViewById(R.id.btn_back).setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
finish();
}
});
}
//获取手机ipmethod-2
publicStringgetLocalIpAddress2(){
//获取wifi服务
WifiManagerwifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);
}
WifiInfowifiInfo=wifiManager.getConnectionInfo();
intipAddress=wifiInfo.getIpAddress();
Stringip=intToIp(ipAddress);
returnip;
}
privateStringintToIp(inti){
return(i&0xFF)+"."+((i>>8)&0xFF)+"."+((i>>16)&0xFF)
+"."+(i>>24&0xFF);
}
/
mac地址start
/
publicStringgetLocalMacAddress(){
WifiManagerwifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
WifiInfoinfo=wifi.getConnectionInfo();
returninfo.getMacAddress();
}
//手机的内存信息主要在/proc/meminfo文件中,其中第一行是总内存,而剩余内存可通过ActivityManager.MemoryInfo得到。
privateStringgetAvailMemory(){//获取android当前可用内存大小
ActivityManageram=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfomi=newMemoryInfo();
am.getMemoryInfo(mi);
//mi.availMem;当前系统的可用内存
returnFormatter.formatFileSize(getBaseContext(),mi.availMem);//将获取的内存大小规格化
}
privateStringgetTotalMemory(){
Stringstr1="/proc/meminfo";//系统内存信息文件
Stringstr2;
String[]arrayOfString;
longinitial_memory=0;
try{
FileReaderlocalFileReader=newFileReader(str1);
BufferedReaderlocalBufferedReader=newBufferedReader(
localFileReader,8192);
str2=localBufferedReader.readLine();//读取meminfo第一行,系统总内存大小
arrayOfString=str2.split("\\s+");
for(Stringnum:arrayOfString){
Log.i(str2,num+"\t");
}
initial_memory=Integer.valueOf(arrayOfString[1]).intValue()1024;//获得系统总内存,单位是KB,乘以1024转换为Byte
localBufferedReader.close();
}catch(IOExceptione){
}
returnFormatter.formatFileSize(getBaseContext(),initial_memory);//Byte转换为KB或者MB,内存大小规格化
}
/
CPU
/
privatevoidgetCpuInfo(){
Stringstr1="/proc/cpuinfo";
Stringstr2="";
String[]arrayOfString;
try{
FileReaderfr=newFileReader(str1);
BufferedReaderlocalBufferedReader=newBufferedReader(fr,8192);
str2=localBufferedReader.readLine();
arrayOfString=str2.split("\\s+");
for(inti=2;i cpuInfo[0]=cpuInfo[0]+arrayOfString[i]+"";
}
str2=localBufferedReader.readLine();
arrayOfString=str2.split("\\s+");
cpuInfo[1]+=arrayOfString[2];
localBufferedReader.close();
}catch(IOExceptione){
}
}
}
六.架包
1.Xutils
强大的xutils就不多说了
2.Androidanimation
动画,注解
3.Volley
Google官方网络框架
七.工具
说到工具,其实辅助我们的工具还真不少,我以后慢慢的一个个添加
1.HJson
64位的
格式化json的PC端工具
2.Xmind
思维导图制作软件,如果你的思路不清晰,可以用它来慢慢梳理
3.MarkDown编辑器
这篇博文就是这个编辑器写出来的,真心很方便,大伙可以试试
|
|