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

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

时间: 2024-10-07 04:17:53

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

Android常用酷炫控件(开源项目)github地址汇总

转载一个很牛逼的控件收集贴... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style 等等. 一.ListView android-pulltorefresh一个强大的拉动

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

Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送,写这个系列真的很要命,你要去把他们的API文档大致的翻阅一遍,而且各种功能都实现一遍,解决各种bug各种坑,不得不说,极光推送真坑,大家使用还是要慎重,我们看一下极光推送的官网 https://www.jpush.cn/common/ 推送比较使用,很多软件有需要,所以在这个点拿出来多讲讲,我们本节

android 下动态获取控件的id

有时候我们需要动态的取得一个一个控件的id,然后进行操作,经过在网上查找,找到了一下方法getResources().getIdentifier("textView01", "id", "cn.xxx.xxx"); 第一个参数为ID名,第二个为资源属性是ID或者是Drawable,第三个为包名. 以下是从网上找到资料:主要由两种方法,个人建议第二种. 1. 不把图片放在res/drawable下,而是存放在src某个package中(如:com.

Android自定义控件——自定义组合控件

转载请注明出处http://blog.csdn.net/allen315410/article/details/39581055  前面几篇博文介绍了Android如何自定义控件,其实就是讲一下如何"从无到有"的自定义一个全新的控件,继承View或者继承ViewGroup,复写其相关方法,这种自定义控件的方式相对来说难度较大,而且并不是所有需要新控件的情况下,都要这样进行.有很多情况下,我们只要运用好Android给我提供好的控件,经过布局巧妙的结合在一起,就是一个新的控件,我称之为&

Android 下拉刷新控件SwipeRefreshLayout结合WebView使用

SwipeRefreshLayout 是谷歌官方下拉刷新控件,4.0以下的版本需要用到  android-support-v4.jar包才能用到 android-support-v4.jar 包下载地址:http://download.csdn.net/detail/h7870181/7784247 官网API地址:https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html G

Android UI布局与控件(二)

一.View类的常用xml属性:[了解] ①.Android中所有的UI(用户界面)元素都是使用View和ViewGroup对象建立的 ②.View是一个可以将一些信息绘制在屏幕上并与用户产生交互的对象 ③.ViewGroup是一个包含多个的View和ViewGroup的容器,用来定义UI布局. ④.Android提供了一系列的View和ViewGroup的子类,开发者可以灵活地组合使用它们来完成界面布 局.界 面元素绘制和用户交互等工作 ⑤.开发者还可以选择性地继承一些系统提供的View,来自

android (4)控件的xml属性

android:id 为控件指定相应的ID. android:text 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串. android:textSize 指定控件当中字体的大小. android:background 指定该控件所使用的背景色或背景图,RGB命名法. android:width 指定控件的宽度. android:height 指定控件的高度. android:sigleLine 如果设置为真的话,则控件的内容在同一行中进行显示. and

Android常用布局和控件

一.Android常用布局属性 1. LinearLayout的特有属性 android:orientation:设置布局排列方式   android:layout_weight:设置所占布局的权重   android:weightSum:设置最大权重和 2. RelativeLayout的特有属性 属性值为“true”或“false”android:layout_centerHrizontal:位于父控件的横向中间位置android:layout_centerVertical:位于父控件的纵向

Android UI-自定义日历控件

Android UI-自定义日历控件 本篇博客笔者给大家分享一个日历控件,这里有个需求:要求显示当前月的日期,左右可以切换月份来查看日期. 我们想一想会如何去实现这样的一个控件,有开源的,但可能不太满足我们的特定的需求,这里笔者自定义了一个,读者可以根据自己的需求来修改代码.下面来说一下实现的思路: 首先我们要显示当前月份,自然我们要计算出当前的日期,并且把每一天对应到具体的星期,我们会有以下效果: 我们先想一下这样的效果用什么控件可以实现?很自然可以想到用网格视图GridView,但这里笔者使