android方法汇总

1、获取屏幕尺寸(高、宽)

Display display = getWindowManager().getDefaultDisplay();

display.getWidth()';//返回px值

display.getHeight();//返回px值

display.getRotation();//返回0或1,0表示竖屏,1表示横屏

2、设置界面不显示标题

      以编程方式设置:

 requestWindowFeature(Window.FEATURE_NO_TITLE);

      在AndroidManifest.xml中设置全屏,以下代码写在<activity>中:

      android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

3、使用应用程序上下文

      Contextcontext = getApplicationContext();

由于Activity类时从Context派生而来的,因此,在Activity类中编写代码时,可直接使用this对象,而不用显式地获取应用程序上下文,例如:

      Intentintent = new Intent(Main.this , activity.class);

      Intentintent = new Intent(getApplication , activity.class);

4、获取应用程序资源

      Stringstring = getResources().getString(R.string.hello);

 5、访问应用程序首选项

      要获取共享的应用程序首选项,可使用应用程序上下文的方法getSharedPreferences()。可以使用getSharedPreferences对象来存储简单的应用程序数据,如配置设置。可以给每个getSharedPreferences对象指定独特的名称一遍对首选项进行分类,或将所有首选项都存储在一个未命名的大型集合中。

      例如,跟踪每位用户的姓名和一些简单的游戏状态信息,如用户是否有足够的金额继续玩下去。下面的代码创建一个名为GamePrefs的共享首选项集合,并在其中存储一些首选项:

           //Context.MODE_PRIVATE设置共享机制为私有,仅应用程序内部访问

           SharedPreferencessetting = getSharedPreferences("GamePrefs", Context.MODE_PRIVATE);

           SharedPreferences.EditorprefEditor = setting.edit();

           prefEditor.putString("UserName","小明");

           prefEditor.putBoolean("HasCredits",true);

           prefEditor.commit();

      要获取首选项设置,只需要获取SharedPreferences并读取其中的值:

           SharedPreferencesgettings = getSharedPreferences("GamePrefs", Context.MODE_PRIVATE);

           StringuserName = gettings.getString("UserName", "如果要获取的值不存在,则返回这串字符");

 

6、使用意图传递信息

      意图可用于在活动之间传递数据。要以这种方式使用意图,可在意图中包含额外的数据,这些数据被称为extra。Android编程约定是,在每项额外数据面前加上包名,如”com.singer.Five.NameOfExtra”:

            Intent intent = newIntent(getApplicationContext() , Main.class);

           intent.putExtra("com.singer.Five.NameOfExtra",23);

           startActivityForResult(intent,0);

      在传递到的activity中,通过getintent获取上述意图:

           Intentintent2 = getIntent();

           intt = intent2.getIntExtra("com.singer.Five.NameOfExtra", "如果要获取的值不存在,则返回这串字符");

 

7、获取资源

 (1)、引用应用程序资源

      要以编程方式访问应用程序资源,可使用自动生成的类文件R.java。要在您的Activity类中获取资源,必须使用方法getResources()获取应用程序的Resources对象,在根据要获取的资源类型调用合适的方法

      例如要获取string.xml中定义的名为hello的字符串,可使用:

      Stringstr = getResources().getString(R.string.hello);

(2)、使用系统资源

    除了自己的私有资源外,应用程序还可以访问Android系统资源。这些标准资源是所有应用程序共享的,它们提供了统一的风格、其他模版以及常用的字符串和颜色。

    系统资源存储在android.R包中。对于每种主要的资源类型,都有相应的类。例如android.R.string类包含系统字符串资源。要在activity类中获取名为ok的系统资源子if,首先需要使用Resources类的静态方法getSystem()来获取全局系统对象Resources,然后调用getString()方法,并给它传递合适的字符串资源名,例如:

    String str =Resources.getSystem().getString(android.R.ok);

    要在资源(如布局文件)中引用系统资源,可以使用如下格式:

    @android:[资源类型]/[资源名称]

    例如:

    @android:string/ok

(3)、使用颜色

    可以添加一个新的类型为value的XML文件用来存储颜色资源,例如:

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

<resources>

          <color name="background_color">#006400</color>   

          <color name="app_text_color">#FFE4C4</color>

</resources>

      Android系统支持12位和24为的RGB颜色,如图表:

格式

描述

示例

#RGB

12位颜色

#00FF(蓝色)

#ARGB

包含透明度(alpha)值的12位颜色

#800F(透明度为50%的蓝色)

#RRGGBB

24位颜色

#FF00FF(洋红色)

#AARRGGBB

包含透明度值的24为颜色

#80FF00FF(透明度50%的洋红色)

注意:颜色采用十六进制表示

      下面在Activity类中使用getColor()方法获取颜色资源:

           intcolor = getResources().getColor(R.color.app_text_color);

 (4)、使用度量单位资源

      方法相同,例如:

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

<resources>

          <dimen name=" thumbDim">100px</dimen>

</resources>

      在Activity中获取度量单位资源:

      FloatthumbnailDim = getResources().getDimension(R.dimen.thumbDim);

 

8、使用Drawable资源

      应用程序最常用的Drawable资源是位图图像文件,Android支持的图像格式有*.png(PNG)、*.9.png(PNG)、*.jpg(JPEG/JPG)、*.gif(GIF),其中最常用的也是首选格式应该为*.png(PNG)、*.9.png(PNG)。

      图像资源被封装在BitmapDrawable类中,要在Activity类中访问图形资源文件,可使用如下方法:

      BitmapDrawablebitmap = (BitmapDrawable)getResources().getDrawable(R.drawable.logo);

      如果要将控件的source属性设置为相应的资源标识符,让该资源将显示在屏幕上,例如:

      ImageView.setImagerResource(R.drawable.logo);

 

9、使用XML文件

      要在活动类中以编程方式访问XML资源文件res/xml/default_values.xml,可使用Resources类的方法getXml(),如下所示:

XmlResourceParser xmlResourceParser= getResources().getXml(R.xml.default_values);

      获取XML分析器对象后,便可以分析XML、提取合适的数据元素并以想要的方式使用。

 

10、使用原始文件

      应用程序可将原始(raw)作为资源。应用程序可能使用的原始文件包括音频文件、视频文件以及您需要的其他任何格式的文件。所有的原始资源文件都应放在资源目录/res/raw中,并有唯一的名称(不包括扩展名,这意味着file1.txt和file1.dat将放生冲突)

      要在您的活动类中以编程方式使用原始文件资源,只需要使用Resources类的方法openRawResource()。例如,下面的代码创建了一个InputStream对象,以便访问资源文件/res/raw/file1.txt:

      InputStreaminputStream = getResources().openRawResource(R.raw.file1);

 

提示:有时候,您可能想在应用程序中包含文件,但有不将它们编译到应用程序资源中,为此,Android一共了一个特殊的目录——/assets,这个项目目录与目录/res位于同一级。包含在该目录中的任何文件都将作为二进制(binary)资源与应用程序安装包一起提供,它们不会被编译到应用程序中,对其使用方法如下:

      InputStreaminputStream2 = getResources().getAssets().open("file1.txt");


1、使用Permissions选项卡


Android清单文件Androidmanifest.xml中的选项卡Permissions包含应用程序需要的权限规则,该选项卡还用于实施为应用程序创建的自定义权限。

警告:不要将Application选项卡中的下拉列表Permissions与选项卡中Permissions混为一谈。选项卡Permissions用于定义应用程序访问资源或APO所需要的权限,而下拉列表Permission用于指定其他程序为访问当前应用程序暴露的资源和API所需要的权限。

 

2、Android SDK版本

在创建应用程序时需要设置应用程序支持的最低Android SDK版本,在Androidmainfest.xml中使用<use-sdk Theandroid:minSdkVersion=””>来表示,下面是常用Android SDK版本对应的值

Android SDK 版本

对应的值

Android 2.0 SDK

5

Android 2.0.1 SDK

6

Android 2.1 SDK

7

Android 2.2 SDK

8

Android 2.3 SDK

9

Android 2.3.3/2.3.4 SDK

10

Android 3.0 SDK

11

Android 3.1 SDK

12

3、应用程序权限

Android文件清单中使用<uses-permission>标记声明权限,可以在Androidmanifest.xml选项卡下通过代码添加,也可以在Permissions选项卡中添加。下面是一些常用的权限:

权限类别

很有用的权限

基于位置的服务

android.permissioin.ACCESS_COARSE_LOCATION

android.permissioin.ACCESS_FINE_LOCATION

操作内存卡

android.permission.MOUNT_UNMOUNT_FILESYSTEMS

android.permission.WRITE_EXTERNAL_STORAGE

访问联系人数据库

android.permission.READ_CONTACTS

android.permission.WRITE_CONTACTS

拨打电话

android.permission.CALL_PHONE

android.permission.CALL_PRIVILEGED

收发短信

android.permission.READ_SMS

android.permission.RECEIVE_MMS

android.permission.RECEIVE_SMS

android.permission.RECEIVE_WAP_PUSH

android.permission.SEND_SMS

android.permission.WRITE_SMS

访问网络

android.permission.INTERNET

访问音频设置

android.permission.RECORD_AUDIO

android.permission.MODIFY_AUDIO_SETTINGS

访问网络设置

android.permission.ACCESS_NETWORK_STATE

android.permission.CHANGE_NETWORK_STATE

访问Wi-Fi设置

android.permission.ACCESS_WIFI_STATE

android.permission.CHANGE_WIFI_STATE

访问蓝牙

android.permission.BLUETOOTH

访问照相机

android.permission.CAMERA

访问闪光灯

android.permission.FLASHLIGHT

访问重力感应

android.permission.VIBREATE

访问电池状态

android.permission.BATTERY_STATE

 


1、使用ListView控件

ListView控件需要一个布局文件和一个数组资源填充,步骤为:

创建一个布局文件menu.xml,用于ListView的每一行:

   

[html]  view plain  copy
 print ?
  1. <TextView   
  2.   
  3.         xmlns:android="http://schemas.android.com/apk/res/android"  
  4.   
  5.         android:layout_width="match_parent"  
  6.   
  7.         android:layout_height="wrap_content"  
  8.   
  9.         android:gravity="center_horizontal"  
  10.   
  11.         android:textColor="@android:color/background_dark"  
  12.   
  13.         android:shadowColor="@android:color/background_dark"  
  14.   
  15.         android:shadowDx="3"  
  16.   
  17.         android:shadowDy="3"/>  


获取ListView:

ListView listView = (ListView)findViewById(R.id.listview);

接下来定义要用来填充ListView控件中各个控件(例如TextView)的字符串:

[java]  view plain  copy
 print ?
  1. String[] items = {getResources().getString(R.string.app_name),  
  2.   
  3.                  getResources().getString(R.string.app_name),  
  4.   
  5.                  getResources().getString(R.string.app_name),  
  6.   
  7.                  getResources().getString(R.string.app_name)};  

 

使用一个数据适配器(adapter)将数据关联到您创建的布局模版menu.xml,使用哪种适配器取决于使用的数据类型,这里使用的是ArrayAdapter:

[java]  view plain  copy
 print ?
  1. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.menu , item);  


 

1)       添加自定义分隔条:

在布局文件中的ListView下,将图形资源替换即可:

android:divider="@android:drawable/alert_dark_frame"

2)       ListView选定指示器指出当前选择了哪个列表项,由属性listSelector控制。默认情况下,ListView控件的选定指示器是橙色镶边,要改变它只需要在布局文件中将listSelector属性改为自定义图形资源即可:

android:listSelector="@drawable/btnback"

 

2、其他类型的菜单

上下文菜单(Context menu):用户长时间按住视图对象时弹出的菜单,这种菜单通常与包含类似选项的ListView控件结合使用。当用户长时间按住特定歌曲时,将打开上下文菜单,其中包含注入Play、Delete和Add to Playlist等选项;

选项菜单(Option menus):每当用户单击手机上的Menu按钮时,都将弹出一个选项菜单。这种菜单常用于帮助用户处理应用程序设置等。

1).选项菜单的添加:

  首先使用XML文件在/res/menu菜单下创建一个菜单定义资源mymenu.xml

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <menu xmlns:android="http://schemas.android.com/apk/res/android" >  
  4.   
  5. <item   
  6.   
  7.     android:id="@+id/settings_menu_item"  
  8.   
  9.     android:title="@string/app_name"  
  10.   
  11.     android:icon="@android:drawable/ic_menu_preferences"/>     
  12.   
  13. <item   
  14.   
  15.     android:id="@+id/help_menu_item"  
  16.   
  17.     android:title="@string/hello_world"  
  18.   
  19.     android:icon="@android:drawable/ic_menu_help"/>  
  20.   
  21. </menu>  


  将选项菜单加入到活动中,重写onCreateOptionsMenu()方法:

[java]  view plain  copy
 print ?
  1. @Override  
  2.   
  3. public boolean onCreateOptionsMenu(Menu menu)   
  4.   
  5. {  
  6.   
  7.         getMenuInflater().inflate(R.menu.activity_main, menu);  
  8.   
  9.         return true;  
  10.   
  11. }  


  处理用户选择菜单,监视用户打开选项菜单并选择菜单项的操作,重写onOptionsItemSelected()方法:

[java]  view plain  copy
 print ?
  1. @Override  
  2.   
  3. public boolean onOptionsItemSelected(MenuItem item)  
  4.   
  5. {  
  6.   
  7.         switch (item.getItemId())  
  8.   
  9.         {  
  10.   
  11.                case R.id.settings_menu_item:  
  12.   
  13. Toast.makeText(getApplicationContext(),"1",Toast.LENGTH_LONG).show();  
  14.   
  15.                       break;  
  16.   
  17.                case R.id.help_menu_item:  
  18.   
  19. Toast.makeText(getApplicationContext(), "2",Toast.LENGTH_LONG).show();  
  20.   
  21.                       break;  
  22.   
  23.         }  
  24.   
  25.         return super.onOptionsItemSelected(item);  
  26.   
  27. }  
  28.   
  29.    


 

3、TabHost的使用

使用TabHost可以在一个屏幕间对不同面板进行切换,步骤如下:

首先建立自己的.xml文件,包含TabHost,TabWidget,FramLayout:

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
  4.   
  5.     android:id="@+id/tabHost"  
  6.   
  7.     android:layout_width="match_parent"  
  8.   
  9.     android:layout_height="match_parent" >  
  10.   
  11.    
  12.   
  13.     <LinearLayout  
  14.   
  15.         android:layout_width="fill_parent"  
  16.   
  17.         android:layout_height="fill_parent"  
  18.   
  19.         android:orientation="vertical">  
  20.   
  21.           
  22.   
  23.         <TabWidget   
  24.   
  25.             android:id="@android:id/tabs"  
  26.   
  27.             android:layout_width="fill_parent"  
  28.   
  29.             android:layout_height="wrap_content">  
  30.   
  31.         </TabWidget>  
  32.   
  33.    
  34.   
  35.         <FrameLayout   
  36.   
  37.             android:id="@android:id/tabcontent"  
  38.   
  39.             android:layout_width="fill_parent"  
  40.   
  41.             android:layout_height="fill_parent">  
  42.   
  43.         </FrameLayout>  
  44.   
  45.     </LinearLayout>  
  46.   
  47. </TabHost>  


       注意:除了tabhost的id可以自定义以外,其他的必须使用系统的id

       建立几个布局文件作为不同面板相互切换:

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
  4.   
  5.     android:id="@+id/tabHost"  
  6.   
  7.     android:layout_width="match_parent"  
  8.   
  9.     android:layout_height="match_parent" >  
  10.   
  11.    
  12.   
  13.     <LinearLayout  
  14.   
  15.         android:layout_width="fill_parent"  
  16.   
  17.         android:layout_height="fill_parent"  
  18.   
  19.         android:orientation="vertical">  
  20.   
  21.           
  22.   
  23.         <TabWidget   
  24.   
  25.             android:id="@android:id/tabs"  
  26.   
  27.             android:layout_width="fill_parent"  
  28.   
  29.             android:layout_height="wrap_content">  
  30.   
  31.         </TabWidget>  
  32.   
  33.    
  34.   
  35.         <FrameLayout   
  36.   
  37.             android:id="@android:id/tabcontent"  
  38.   
  39.             android:layout_width="fill_parent"  
  40.   
  41.             android:layout_height="fill_parent">  
  42.   
  43.         </FrameLayout>  
  44.   
  45.     </LinearLayout>  
  46.   
  47. </TabHost>  


获取TabHost并初始化:

              setContentView(R.layout.tabhost);

              TabHost tabHost = (TabHost)findViewById(R.id.tabHost);

注册上面的两个布局文件作为tabhost的内容

(注意:如果直接在<tabhost/>下的<FrameLayout/>中设置内容,则不用这一步)

              LayoutInflater inflater = LayoutInflater.from(getApplicationContext());

              inflater.inflate(R.layout.tab1, tabHost.getTabContentView());

              inflater.inflate(R.layout.tab2, tabHost.getTabContentView());

       构建tabSpec并添加进tabhost中:

              tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("taba",getResources().getDrawable(android.R.drawable.ic_menu_camera)).setContent(R.id.fl01));       tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tabb",getResources().getDrawable(android.R.drawable.ic_menu_help)).setContent(R.id.ll02));

 

4、添加字符串数组资源

要创建字符串数组资源,首先要添加资源文件/res/values/arrays.xml,在该文件中,创建一个名为names<string-array>元素,再在该元素内添加若干<item>元素——每个字符串资源一个。

假定在资源文件strings.xml中穿件了如下字符串资源:

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <resources>  
  4.   
  5.        <string name="first">我叫第一</string>  
  6.   
  7.        <string name="second">我叫第二</string>  
  8.   
  9.        <string name="third">我叫第三</string>  
  10.   
  11. </resources>  


 

在资源文件arrays.xml中,将每个字符串资源作为一项加入到字符串数组names中。例如:

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <resources>  
  4.   
  5.               <string-array name="names">  
  6.   
  7.                   <item>@string/first</item>  
  8.   
  9.                   <item>@string/second</item>  
  10.   
  11.                   <item>@string/third</item>  
  12.   
  13.               </string-array>   
  14.   
  15. </resources>  


保存资源文件arrays.xml。要加载字符串数组资源names,可以通过编程方式访问它,方法有:

1).通过getResource()获取并赋值给同数据类型的数组

              String[] str = getResources().getStringArray(R.array.names);

2).通过给Spinner设置ArrayAdapter获取

              ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getApplicationContext(), R.array.names, android.R.layout.simple_spinner_item);

              spinner.setAdapter(adapter);

 

5、使用Spinner控件

Spinner控件是一个下拉列表。在关闭状态下,Spinner控件很像下拉列表,但被激活后,它显示一个选择器窗口,而不是在住屏幕上显示一个下拉列表。

    <Spinner

        android:id="@+id/spinner"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:entries="@array/names"/>

其中的android:entries属性用于指定spinner控件要显示的字符串数组资源;也可以以编程方式使用setAdapter将数据绑定在spinner中;setSelection()方法指定默认选择的选项。

 

6、对话框合集:

Dialog:所有对话框的基类,是最简单的对话框,可用于通知用户,一般出现在屏幕的下部;

AlertDialog:包含一个、两个或三个Button控件的对话框,常用于让用户确认或拒绝操作,如删除文件;

CharacterPickerDialog:让用户选择与基本字符串相关联的特殊字符的对话框,这种对话框常用于提供一系列字符供用户选择;

DataPickerDialog:包含DataPicker控件的对话框,用于让用户输入日期;

ProgressDialog:包含Pregress控件的对话框,用于将操作的状态或进度告诉用户,如正在上传或下载数据;

TimePickerDailog:包含TimePicker控件的对话框,用于让用户输入时间;

自定义对话框:使用对话框生成器(dialog builder)自定义对话框布局。

1、获取资源:  Resources res = getBaseContext().getResources();
         Drawable draw=res.getDrawable(R.drawable.icon);
  2、获得数组:   String[] ary = getResources().getStringArray(R.array.ary);
  3、自动提示框:

  String[] arrays=new String[]{"a","ab","abc","bc","bcde","ee"};
          actalert=(AutoCompleteTextView)findViewById(R.id.actalert);
          ArrayAdapter<String> adapter=new ArrayAdapter<String>(
                  this, 
                  android.R.layout.simple_dropdown_item_1line, 
                  arrays);
          actalert.setAdapter(adapter);
          
          
          mactalert=(MultiAutoCompleteTextView)findViewById(R.id.mactvalert);
          mactalert.setAdapter(adapter);
      // 设置多个值之间的分隔符,此处为逗号
          mactalert.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

  4、spinner设置数据源

  spncolor.setPrompt("请选择");
          ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                  this, R.array.attr, android.R.layout.simple_spinner_item);
          adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
          spncolor.setAdapter(adapter);

  5、显示当前时间:

  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");  
          //  将当前时间显示在TextView组件中  
          tvTime.setText("当前时间:" + sdf.format(new Date()));

  6、代码添加布局文件

  AbsListView.LayoutParams lp = new AbsListView.LayoutParams(  
                      ViewGroup.LayoutParams.FILL_PARENT, 64);  
  
              TextView text = new TextView(activity);  
              text.setLayoutParams(lp);  
              text.setTextSize(20);  
              text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);  
              text.setPadding(36, 0, 0, 0);  
              text.setText(s);

  7、自定义窗口标题栏代码
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);//自定义标题栏
          setContentView(R.layout.main);
          //为标题栏设置一个xml布局
          getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_custom);

  custom_title.xml
  <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
  
      <TextView android:id="@+id/tvtitle"
           android:layout_width="wrap_content" android:layout_height="wrap_content"
           android:layout_alignParentLeft="true"></TextView>
         
      <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
          android:layout_toRightOf="@+id/tvtile" android:orientation="horizontal"
          android:layout_alignParentRight="true" android:gravity="center">
        
          <Button android:text="@string/answer" android:id="@+id/btnanswer" 
              android:layout_width="wrap_content" android:layout_height="wrap_content"
              android:background="@color/btn_inter" android:layout_marginRight="8dp"
              android:gravity="center" android:paddingTop="2dp"></Button>
            
          <Button android:text="@string/submit" android:id="@+id/btnsubmit" 
              android:layout_width="wrap_content" android:layout_height="wrap_content"
              android:background="@color/btn_inter" android:layout_marginRight="8dp"
              android:gravity="center" android:paddingTop="2dp"></Button>
        
        
    
      </LinearLayout>

  </RelativeLayout>

 

  8、Activity仿Dialog Theme(加图标和标题其实就是Activity的icon和titile)(1)、自定义样式
  <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">  
      <item name="android:windowBackground">@drawable/filled_box</item>  
  </style>

  @drawable/filled_box:资源文件中新建drawable文件夹,新建filled_box样式xml
  <shape xmlns:android="http://schemas.android.com/apk/res/android">  
      <solid android:color="#f0600000"/>  
      <stroke android:width="3dp" color="#ffff8080"/>  
      <corners android:radius="3dp" />  
      <padding android:left="10dp" android:top="10dp"  
          android:right="10dp" android:bottom="10dp" />  
  </shape>

  (2)Manifest.xml中配置Acitivity样式
  <activity android:name=".Main"
                    android:label="@string/app_name"
                    android:theme="@android:style/Theme.Dialog">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>

  (3)为Activity设置图标
   //设定窗口模式(仿Dialog中的icon,带有一个左图标)
          requestWindowFeature(Window.FEATURE_LEFT_ICON);
        
          setContentView(R.layout.main);
          //设置图片资源
           getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON
             , R.drawable.icon);

  9、从一个Activity1到另一个Activity2,当在第二个Activity2按返回键不出现Activity1的做法是在打开Activity2的同时关闭Activity1
   Intent intent = new Intent(Main.this, fowardwidget.class);
          startActivity(intent);
          finish();

  10、允许TextView的文本值拼接
  (1)允许在TextView的文本值后添加buffer text
  tv.setText(tv.getText(),TextView.BufferType.EDITABLE);

  (2)使用Editable对象添加buffer text
  Editable text=(Editable)tv.getText();

  text.append("editable");

  text.append("\n"):

  11、如果历史栈中包含Activity,打开此Activity从栈中放到栈顶层而不是从新打开Activity
  Intent intent = new Intent(ReorderFour.this, ReorderTwo.class);
  intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
  startActivity(intent);

  12、避免输入法面板遮挡,在manifest.xml中activity中设置android:windowSoftInputMode
  android:windowSoftInputMode="stateVisible|adjustResize"

  13、获取当前手机壁纸和设置手机壁纸(wallpaper)(1)获取当前壁纸
  WallpaperManager wm=WallpaperManager.getInstance(this);
  Drawable wallpaper=wpm.getDrawable();

  (2)设置当前壁纸,同时要添加壁纸设置权限
  imapaper.setDrawingCacheEnabled(true);
  Drawable drawale=this.getResources().getDrawable(R.drawable.bg);
  imapaper.setImageDrawable(drawale);
  wpm.setBitmap(imapaper.getDrawingCache());

  <uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>

  14、常见通过系统服务得到的实例化对象
  NotificationManager nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);

  15、检查网络是否连接
    //检查网络是否连接
      public boolean checkIntent(){
          ConnectivityManager mannager=(ConnectivityManager)
                this.getSystemService(CONNECTIVITY_SERVICE);
          NetworkInfo info=mannager.getActiveNetworkInfo();
          if(info==null || !info.isConnected()){
              return false;
          }
          if(info.isRoaming()){
              return true;
          }
          return true;
      }

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

 

  16、从资源文件中(asset)读取文本文档
  //获得输入流
  InputStream in=getAssets().open("read_asset.txt");
  int size=in.available();
  //将输入流读到字节数组中(内存)
  byte[] buffer=new byte[size];
  in.read(buffer);
  in.close();
  String text=new String(buffer);

  17、TextView、Button等设置文本滚动(跑马灯效果),控件必须获得焦点才能有滚动效果,并且文字长度大于控件长度
      android:singleLine="true"
      android:ellipsize="marquee"
      android:focusable="true" 
      android:marqueeRepeatLimit="marquee_forever" 
     //marquee_forever:一直滚动下去,n(整数):滚动n次

  18、TextView文本添加下划线
  TextView textView = (TextView)findViewById(R.id.testView);    
  textView.setText(Html.fromHtml("<u>"+"hahaha"+"</u>"));

  19、TextView添加图片
  String src=""+R.drawable.qq;
        
          Html.ImageGetter imageGetter =new ImageGetter() {
              Drawable draw=null;
              @Override
              public Drawable getDrawable(String source) {
                  // TODO Auto-generated method stub
                  int id=Integer.parseInt(source.trim());
                  draw=getResources().getDrawable(id);
                  draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight());
                  return draw;
              }
          };
          tvquestion.append(Html.fromHtml("<img src="+src+"", imageGetter, null));

  20、秒转成00:00:00
    int hour=time/60/60%60;
              int minute = time/60%60;
              int second = time%60;
              String strhour=hour<10 ? "0" + hour : "" + hour;
              String strminutes=minute<10 ? "0" + minute : "" + minute;
              String strseconds=second < 10 ? "0" + second : "" + second;
              tvtimer.setText(strhour+":"+strminutes+":"+strseconds);

  21、TextView添加滚动条
  <ScrollView android:id="@+id/sv_e8_question" 
          android:layout_width="fill_parent" android:layout_height="180dp"
          android:scrollbarStyle="outsideOverlay"> 
              <TextView android:text="@string/question" android:id="@+id/tv_e8_question"
                  android:layout_width="fill_parent" android:layout_height="wrap_content"
                  android:paddingTop="5dp" android:paddingLeft="5dp"></TextView>
      </ScrollView>

  22、Activity自动销毁时调用onSaveInstanceState()方法保存配置信息:可多Activity共享
    @Override
      public void onSaveInstanceState(Bundle outState){
          SharedPreferences.Editor editor=getSharedPreferences("sp_timer", 0).edit();
          editor.putInt(arg0, arg1);
          super.onSaveInstanceState(outState);
      }

  单个Activity保存
    @Override
      public void onSaveInstanceState(Bundle outState){
          SharedPreferences.Editor editor=this.getPreferences(0).edit();
          editor.putInt(arg0, arg1);
          super.onSaveInstanceState(outState);
      }


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值