Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有相关的知识,希望对你有一定的参考价值。

android高效率编码-细节,控件。架包,功能。工具,开源汇总


事实上写博客的初衷也并非说什么分享技术,毕竟咱还仅仅是个小程序猿。最大的目的就是对自我的知识积累。以后万一编码的时候断片了,也能够翻出来看看,这样子对自己也有优点,所以今天就汇总一下一些须要的东西。多图来了,加油!

一.游戏

小熊打字,我刚接触电脑练习打字的时候用到的

技术分享

下载地址:http://download.csdn.net/detail/qq_26787115/9365721

二.色彩

这张颜色表上的颜色都太赞了

技术分享

三.控件

1.TextView

//禁止换行
android:singleLine="true"
//字体滚动
 <TextView 
     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"      

3.LinearLayout

各种属性

技术分享

4.RelativeLayout

各种属性

技术分享

5.Button

扁平的按钮xml写法

技术分享

6.WebView

载入网页

技术分享

7.RatiBar评分条

评分

技术分享

8.ListView

基本写法

技术分享
ArrayAdapter写法
技术分享
SimpleAdapter写法
技术分享

9.ToggleButton

ToggleButton更换主题

技术分享

10.Spinner

布局

技术分享
代码
技术分享

11.Dialog

属性

技术分享
用法
技术分享

12.AutoCompleteTextView

AutoCompleteTextView

技术分享
MultiAutoCompleteTextView
技术分享

13.TabHost

布局

技术分享
Activity
技术分享
TabHostActivity自己定义Title字体颜色等
技术分享

14.Menu

菜单

技术分享

15.String的一些经常用法

技术分享

四.基础动画

1.缩放

技术分享

2.透明

技术分享

3.旋转

技术分享

4.移动

技术分享

5.混合

技术分享

6.动画监听事件

技术分享

五.功能(有些须要权限。自行加入)

1.拨号

第一种方法

技术分享
另外一种方法
技术分享

2.SeekBar进度条

技术分享

3.沉浸式状态栏

放在onCreate()方法里

技术分享

4.隐藏ActionBar

getActionBar().hide();

5.屏蔽返回键

技术分享

6.按两次退出

方法1

技术分享
方法2

        private long exitTime = 0;

技术分享

7.拍照

技术分享

8.分享

调用系统的分享功能

技术分享

9.播放音乐

相应的功能,比方停止时stop();

技术分享

10.ViewPager

技术分享

11.获取软件版本

技术分享

12.检查SD卡状态

技术分享

13.手机震动

技术分享

14.跳转短信

技术分享

15.头像选择

技术分享

16.获取系统电量

技术分享

17.下载

技术分享

18.重新启动

root

技术分享

19.关机

root

技术分享

20.子线程网络下载图片

技术分享

21.获取手机各种信息

效果图

技术分享
直接上代码
注意加入各种权限

activity_main.xml

<?xml version="1.0" encoding="utf-8"?

> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:orientation="vertical" > <RelativeLayout android:id="@+id/tab1_rl" android:layout_width="match_parent" android:layout_height="51dp" android:background="#34c083" > <TextView 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" /> <Button android:id="@+id/btn_back" android:layout_width="wrap_content" android:layout_height="51dp" android:layout_alignParentLeft="true" android:background="@drawable/back" /> </RelativeLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="IP:" /> <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="MAC地址:" /> <TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="SD卡存储信息:" /> <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="手机分辨率:" /> <TextView android:id="@+id/tv4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="网络是否连接:" /> <TextView android:id="@+id/tv5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="手机内存:" /> <TextView android:id="@+id/tv6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="手机CPU:" /> <TextView android:id="@+id/tv7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="40dp" android:background="@android:color/white" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="手机IMEI:" /> <TextView android:id="@+id/tv8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測试" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#aeaea9" /> </LinearLayout>

MainActivity.java

package com.lgl.circle;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.telephony.TelephonyManager;
import android.text.format.Formatter;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
import com.lgl.circle.R;

public class AboutPhone extends Activity {

    private TextView tv1, tv2, tv3, tv4, tv5, tv6, tv7, tv8;
    private String[] cpuInfo = { "", "" }; // 1-cpu型号 //2-cpu频率

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about_phone);
        initView();
    }

    private void initView() {
        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文件路径
            File path = Environment.getExternalStorageDirectory();
            StatFs statfs = new StatFs(path.getPath());
            // 获取block的SIZE
            long blocSize = statfs.getBlockSize();
            // 获取BLOCK数量
            long totalBlocks = statfs.getBlockCount();
            // 空暇的Block的数量
            long availaBlock = statfs.getAvailableBlocks();
            // 计算总空间大小和空暇的空间大小
            // 存储空间大小跟空暇的存储空间大小就被计算出来了。

long availableSize = blocSize * availaBlock; // (availableBlocks * blockSize)/1024 KIB 单位 // (availableBlocks * blockSize)/1024 /1024 MIB单位 long allSize = blocSize * totalBlocks; tv3.setText("可用:" + availableSize / 1024 / 1024 / 1024 + "GB" + " 总共:" + allSize / 1024 / 1024 / 1024 + "GB"); } else { tv3.setText("SD卡不可用"); } tv4 = (TextView) findViewById(R.id.tv4); DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); tv4.setText("分辨率:" + displayMetrics.widthPixels + "x" + displayMetrics.heightPixels); tv5 = (TextView) findViewById(R.id.tv5); ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo == null || !networkInfo.isConnected()) { // info.setConnected(false); tv5.setText("当前无网络"); } else { // info.setConnected(true); tv5.setText("当前网络正常"); } tv6 = (TextView) findViewById(R.id.tv6); String availMemory = getAvailMemory(); String totalMemory = 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 { TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String imei = mTelephonyMgr.getDeviceId(); tv8.setText("" + imei); } catch (Exception e) { // TODO: handle exception } findViewById(R.id.btn_back).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } // 获取手机ip method-2 public String getLocalIpAddress2() { // 获取wifi服务 WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); // 推断wifi是否开启 if (!wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(true); } WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); String ip = intToIp(ipAddress); return ip; } private String intToIp(int i) { return (i & 0xFF) + "." + ((i >> 8) & 0xFF) + "." + ((i >> 16) & 0xFF) + "." + (i >> 24 & 0xFF); } /** * mac地址 start */ public String getLocalMacAddress() { WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); } // 手机的内存信息主要在/proc/meminfo文件里,当中第一行是总内存,而剩余内存可通过ActivityManager.MemoryInfo得到。 private String getAvailMemory() {// 获取android当前可用内存大小 ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); MemoryInfo mi = new MemoryInfo(); am.getMemoryInfo(mi); // mi.availMem; 当前系统的可用内存 return Formatter.formatFileSize(getBaseContext(), mi.availMem);// 将获取的内存大小规格化 } private String getTotalMemory() { String str1 = "/proc/meminfo";// 系统内存信息文件 String str2; String[] arrayOfString; long initial_memory = 0; try { FileReader localFileReader = new FileReader(str1); BufferedReader localBufferedReader = new BufferedReader( localFileReader, 8192); str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小 arrayOfString = str2.split("\\s+"); for (String num : arrayOfString) { Log.i(str2, num + "\t"); } initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存。单位是KB,乘以1024转换为Byte localBufferedReader.close(); } catch (IOException e) { } return Formatter.formatFileSize(getBaseContext(), initial_memory);// Byte转换为KB或者MB,内存大小规格化 } /** * CPU */ private void getCpuInfo() { String str1 = "/proc/cpuinfo"; String str2 = ""; String[] arrayOfString; try { FileReader fr = new FileReader(str1); BufferedReader localBufferedReader = new BufferedReader(fr, 8192); str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); for (int i = 2; i < arrayOfString.length; i++) { cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " "; } str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); cpuInfo[1] += arrayOfString[2]; localBufferedReader.close(); } catch (IOException e) { } } }

六.架包

1.Xutils

强大的xutils就不多说了

下载地址:http://download.csdn.net/detail/qq_26787115/9363335

2.Android animation

动画。注解

下载地址:http://download.csdn.net/detail/qq_26787115/9362755

3.Volley

Google官方网络框架

下载地址:http://download.csdn.net/detail/qq_26787115/9358787

七.工具

说到工具,事实上辅助我们的工具还真不少。我以后慢慢的一个个加入

1.HJson

64位的
格式化json的PC端工具

下载地址:http://download.csdn.net/detail/qq_26787115/9365829

2.Xmind

思维导图制作软件,假设你的思路不清晰,能够用它来慢慢梳理

技术分享

下载地址:http://www.xmind.net/cn/

3.MarkDown编辑器

这篇博文就是这个编辑器写出来的,真心非常方便,大伙能够试试

技术分享

下载地址:http://markdownpad.com/

十个编辑器推荐:http://www.csdn.net/article/2014-05-05/2819623

兴许还会持续更新。假设由错误或者疑问欢迎评论留言!




















以上是关于Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有的主要内容,如果未能解决你的问题,请参考以下文章

Android高效率编码-第三方SDK详解系列——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

Spring 框架的架包分析功能作用优点,及jar架包简介

Android json解析架包(阿里巴巴的fastjson)处理是报异常。

Android APP性能优化之Java代码效率优化细节

在交互细节上,Android 与 iOS 都有哪些区别?

C#常用控件说明