安卓常用方法和布局总结

转载请注明出处:安卓常用方法和布局总结_安卓常用布局管理器实训结果分析_Mr_Leixiansheng的博客-CSDN博客

 

总结1

(1)标题栏和任务栏的隐藏和设置:

      标题栏和任务栏的隐藏和设置主要有两种:

  1. 在xml文件中进行配置 
    在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可。 
    实现全屏效果: 
    Android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    实现无标题栏(但有系统自带的任务栏): 
    android:theme="@android:style/Theme.NoTitleBar" 

  2. 编写代码设置 
    在程序中编写代码进行设置,只需在onCreate()方法中加入如下代码即可 
    实现全屏效果: 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    实现无标题栏(但有系统自带的任务栏): 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 

    附:Android系统自带样式 
    android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式  
    android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏  
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏  
    android:theme="Theme.Light" 背景为白色  
    android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏  
    android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏  
    android:theme="Theme.Black" 背景黑色  
    android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏  
    android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏  
    android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景  
    android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏  
    android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏 
    android:theme="Translucent"  透明背景 
    android:theme="Theme.Translucent.NoTitleBar"  透明背景并无标题 
    android:theme="Theme.Translucent.NoTitleBar.Fullscreen"  透明背景并无标题,全屏 
    android:theme="Theme.Panel"  面板风格显示 
    android:theme="Theme.Light.Panel" 平板风格显示

(2) EditText 
1、 Android 4.0 版本以后 EditText 边框显示不全问题的解决
                 (加一条属性)android:background="@android:drawable/edit_text" 
2、EditText 去边框去下划线
                 (加一条属性)android:background="@null" 
(3)ListView中有Button或CheckBox焦点冲突的问题
如果ListView的item中存在imagebutton,button,checkbox等子控件,这些子控件会优先获得焦点,导致你点 击item项时可能无响应。解决方法在item根布局加一条属性: android:descendantfocusability =“blocksdescendant s”; 该属性是当一个为view获取焦点时,定义viewgroup和其子控件两者之间的关系。
属性的值有三种:

beforedescendants:viewgroup会优先其子类控件而获取到焦点

afterdescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksdescendants:viewgroup会覆盖子类控件而直接获得焦点

总结2

Activity.startActivities() 常用于在应用程序中间启动其他的Activity.

TextUtils.isEmpty() 简单的工具类,用于检测是否为空

Html.fromHtml() 用于生成一个Html,参数可以是一个字符串.个人认为它不是很快,所以我不怎么经常去用.(我说不经常用它是为了重点突出这句话:请多手动构建 Spannable 来替换 Html.fromHtml),但是它对渲染从 web 上获取的文字还是很不错的。

TextView.setError() 在验证用户输入的时候很棒

Build.VERSION_CODES 这个标明了当前的版本号,在处理兼容性问题的时候经常会用到.点进去可以看到各个版本的不同特性

Log.getStackTraceString() 方便的日志类工具,方法Log.v()、Log.d()、Log.i()、Log.w()和Log.e()都是将信息打印到LogCat中,有时候需要将出错的信息插入到数据库或一个自定义的日志文件中,那么这种情况就需要将出错的信息以字符串的形式返回来,也就是使用static String getStackTraceString(Throwable tr)方法的时候.

LayoutInflater.from() 顾名思义,用于Inflate一个layout,参数是layout的id.这个经常写Adapter的人会用的比较多.

ViewConfiguration.getScaledTouchSlop() 使用 ViewConfiguration 中提供的值以保证所有触摸的交互都是统一的。这个方法获取的值表示:用户的手滑动这个距离后,才判定为正在进行滑动.当然这个值也可以自己来决定.但是为了一致性,还是使用标准的值较好.

PhoneNumberUtils.convertKeypadLettersToDigits 顾名思义.将字母转换为数字,类似于T9输入法,

Context.getCacheDir() 获取缓存数据文件夹的路径,很简单但是知道的人不多,这个路径通常在SD卡上(这里的SD卡指的是广义上的SD卡,包括外部存储和内部存储)Adnroid/data/您的应用程序包名/cache/  下面.测试的时候,可以去这里面看是否缓存成功.缓存在这里的好处是:不用自己再去手动创建文件夹,不用担心用户把自己创建的文件夹删掉,在应用程序卸载的时候,这里会被清空,使用第三方的清理工具的时候,这里也会被清空.

ArgbEvaluator 用于处理颜色的渐变。就像 Chris Banes 说的一样,这个类会进行很多自动装箱的操作,所以最好还是去掉它的逻辑自己去实现它。这个没用过,不明其所以然,回头再补充.

ContextThemeWrapper 方便在运行的时候修改主题.

Space space是Android 4.0中新增的一个控件,它实际上可以用来分隔不同的控件,其中形成一个空白的区域.这是一个轻量级的视图组件,它可以跳过Draw,对于需要占位符的任何场景来说都是很棒的。

ValueAnimator.reverse() 这个方法可以很顺利地取消正在运行的动画.我超喜欢.

DateUtils.formatDateTime() 用来进行区域格式化工作,输出格式化和本地化的时间或者日期。

AlarmManager.setInexactRepeating 通过闹铃分组的方式省电,即使你只调用了一个闹钟,这也是一个好的选择,(可以确保在使用完毕时自动调用 AlarmManager.cancel ()。原文说的比较抽象,这里详细说一下:setInexactRepeating指的是设置非准确闹钟,使用方法:alarmManager.setInexactRepeating(AlarmManager.RTC, startTime,intervalL, pendingIntent),非准确闹钟只能保证大致的时间间隔,但是不一定准确,可能出现设置间隔为30分钟,但是实际上一次间隔20分钟,另一次间隔40分钟。它的最大的好处是可以合并闹钟事件,比如间隔设置每30分钟一次,不唤醒休眠,在休眠8小时后已经积累了16个闹钟事件,而在手机被唤醒的时候,非准时闹钟可以把16个事件合并为一个, 所以这么看来,非准时闹钟一般来说比较节约能源。

Formatter.formatFileSize() 一个区域化的文件大小格式化工具。通俗来说就是把大小转换为MB,G,KB之类的字符串。

ActionBar.hide()/.show() 顾名思义,隐藏和显示ActionBar,可以优雅地在全屏和带Actionbar之间转换。

Linkify.addLinks() 在Text上添加链接。很实用。

StaticLayout 在自定义 View 中渲染文字的时候很实用。

Activity.onBackPressed() 很方便的管理back键的方法,有时候需要自己控制返回键的事件的时候,可以重写一下。比如加入 “点两下back键退出” 功能。

GestureDetector 用来监听和相应对应的手势事件,比如点击,长按,慢滑动,快滑动,用起来很简单,比你自己实现要方便许多。

DrawFilter 可以让你在不调用onDrew方法的情况下,操作canvas,比了个如,你可以在创建自定义 View 的时候设置一个 DrawFilter,给父 View 里面的所有 View 设置反别名。

ActivityManager.getMemoryClass() 告诉你你的机器还有多少内存,在计算缓存大小的时候会比较有用.

ViewStub 它是一个初始化不做任何事情的 View,但是之后可以载入一个布局文件。在慢加载 View 中很适合做占位符。唯一的缺点就是不支持标签,所以如果你不太小心的话,可能会在视图结构中加入不需要的嵌套。

SystemClock.sleep() 这个方法在保证一定时间的 sleep 时很方便,通常我用来进行 debug 和模拟网络延时。

DisplayMetrics.density 这个方法你可以获取设备像素密度,大部分时候最好让系统来自动进行缩放资源之类的操作,但是有时候控制的效果会更好一些.(尤其是在自定义View的时候).

Pair.create() 方便构建类和构造器的方法。

总结3

1.判断服务是否在运行中
 public static boolean isServiceRunning(Context context, String serviceName) {
  boolean isRunning = false;
  ActivityManager activityManager = (ActivityManager) context
    .getSystemService(Context.ACTIVITY_SERVICE);
  List<ActivityManager.RunningServiceInfo> serviceList = activityManager
    .getRunningServices(Integer.MAX_VALUE);
  if (!(serviceList.size() > 0)) {
   return false;
  }
  for (int i = 0; i < serviceList.size(); i++) {
   RunningServiceInfo si = (RunningServiceInfo) serviceList.get(i);
   if (si.service.getClassName().equals(serviceName)) {
    isRunning = true;
    break;
   }
  }
  return isRunning;
 }
2.判断存储卡是否已插入
 public static boolean isExternalStorageAvailable() {
  String state = Environment.getExternalStorageState();
  if (Environment.MEDIA_MOUNTED.equals(state)) {
   return true;
  } else {
   return false;
  }
 }
3.获得该文件的路径
 public static String getSDCardPath(String folderName) {
  if(folderName!=null){
   String path = Environment.getExternalStorageDirectory()
   .getAbsolutePath() + File.separator + folderName;
   File file = new File(path);
   if (!file.exists()) {
    file.mkdir();
   }
   return path;
  }else{
   return null;
  }
 }
4.获得手机IMEI
 public static String getIMEI(Context ctx) {
  if(ctx!=null){
   String imei = "";
   TelephonyManager telephonyManager = (TelephonyManager) ctx
     .getSystemService(Context.TELEPHONY_SERVICE);
   if (telephonyManager != null)
    imei = telephonyManager.getDeviceId();
   if (imei == "")
    imei = "0";
   return imei;
  }else{
   return null;
  }
 }
5.获得手机号
 public static String getPhoneNumber(Context ctx) {
  if(ctx!=null){
   String number = "";
   TelephonyManager telephonyManager = (TelephonyManager) ctx
   .getSystemService(Context.TELEPHONY_SERVICE);
   if (telephonyManager != null)
    number = telephonyManager.getLine1Number();
   if (number == "")
    number = "0";
   return number;
  }else{
   return null;
  }
 }
6.得到手机状态信息
 public static String fetch_status(Context ctx) {
  TelephonyManager tm = (TelephonyManager) ctx
    .getSystemService(Context.TELEPHONY_SERVICE);//
  String str = "";
  str += "DeviceId(IMEI) = " + tm.getDeviceId() + "\n";
  str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()
    + "\n";
  str += "Line1Number = " + tm.getLine1Number() + "\n";
  str += "NetworkCountryIso = " + tm.getNetworkCountryIso() + "\n";
  str += "NetworkOperator = " + tm.getNetworkOperator() + "\n";
  str += "NetworkOperatorName = " + tm.getNetworkOperatorName() + "\n";
  str += "NetworkType = " + tm.getNetworkType() + "\n";
  str += "honeType = " + tm.getPhoneType() + "\n";
  str += "SimCountryIso = " + tm.getSimCountryIso() + "\n";
  str += "SimOperator = " + tm.getSimOperator() + "\n";
  str += "SimOperatorName = " + tm.getSimOperatorName() + "\n";
  str += "SimSerialNumber = " + tm.getSimSerialNumber() + "\n";
  str += "SimState = " + tm.getSimState() + "\n";
  str += "SubscriberId(IMSI) = " + tm.getSubscriberId() + "\n";
  str += "VoiceMailNumber = " + tm.getVoiceMailNumber() + "\n";
  return str;
 }
7.得到软件版本信息
 public static String getSoftwareVersion(Context ctx) {
  String version = "";
  try {
   PackageInfo packageInfo = ctx.getPackageManager().getPackageInfo(
     ctx.getPackageName(), 0);
   version = packageInfo.versionName;
  } catch (PackageManager.NameNotFoundException e) {
   e.printStackTrace();
  }
  return version;
 }
8.得到当前日期
 public static String getCurrDate(String format) {
  String str_format = (format == null || format == "") ? "yyyy-MM-dd HH:mm:ss"
    : format;
  Date date = new Date();
  SimpleDateFormat from = new SimpleDateFormat(str_format);
  String times = from.format(date);
  return times;
 }
9.根据URL获取bitmap
 public static Bitmap getURLBitmap(String uriPic) throws Exception {
  URL imageUrl = null;
  Bitmap bitmap = null;
  try {
   imageUrl = new URL(uriPic);
  } catch (MalformedURLException e) {
   e.printStackTrace();
  }
  try {
   HttpURLConnection conn = (HttpURLConnection) imageUrl
     .openConnection();
   conn.setConnectTimeout(5*1000);
      conn.setReadTimeout(5*1000);
      conn.setDoInput(true);
      conn.setDoOutput(true);
      conn.setUseCaches(true);
      conn.setRequestMethod("POST");
   conn.connect();
   InputStream is = conn.getInputStream();
   bitmap = BitmapFactory.decodeStream(is);
   is.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return bitmap;
 }
10.隐藏app
 public static void HiddenApp(Context ctx) {
  PackageManager pm = ctx.getPackageManager();
  ResolveInfo homeInfo = pm.resolveActivity(
    new Intent(Intent.ACTION_MAIN)
      .addCategory(Intent.CATEGORY_HOME), 0);
  ActivityInfo ai = homeInfo.activityInfo;
  Intent startIntent = new Intent(Intent.ACTION_MAIN);
  startIntent.addCategory(Intent.CATEGORY_LAUNCHER);
  startIntent.setComponent(new ComponentName(ai.packageName, ai.name));
  ctx.startActivity(startIntent);
 }
11.退出程序(3种方法)
 public static void ExitApp(Context ctx) {

  ActivityManager am = (ActivityManager)
  ctx.getSystemService(Context.ACTIVITY_SERVICE);
  am.restartPackage(ctx.getPackageName());
  
  Intent startMain = new Intent(Intent.ACTION_MAIN);
  startMain.addCategory(Intent.CATEGORY_HOME);
  startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  ctx.startActivity(startMain);
  android.os.Process.killProcess(android.os.Process.myPid());
  System.exit(0);
  
  android.os.Process.killProcess(android.os.Process.myPid());
 }
12.查询手机中所有非系统应用
 
 public static List<PackageInfo> getAllApps(Context context) {
 List<PackageInfo> apps = new ArrayList<PackageInfo>();
 PackageManager pManager = context.getPackageManager();
 //获取手机内所有应用
 List<PackageInfo> paklist = pManager.getInstalledPackages(0);
 for (int i = 0; i < paklist.size(); i++) {
 PackageInfo pak = (PackageInfo) paklist.get(i);
 //判断是否为非系统预装的应用程序
 if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {
 // customs applications
 apps.add(pak);
 }
 }
 return apps;
 }
 13.查询手机内所有支持分享的应用

 public static List<ResolveInfo> getShareApps(Context context)
 {
  List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();
  Intent intent = new Intent(Intent.ACTION_SEND, null);
  intent.addCategory(Intent.CATEGORY_DEFAULT);
  intent.setType("text/plain");
  PackageManager pManager = context.getPackageManager();
  mApps = pManager
    .queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
  return mApps;
 }
 14.获取 Andorid 手机WIFI连接的Mac地址和IP地址
  public static String getInfo()
    {
       WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
       WifiInfo info = wifi.getConnectionInfo();
 
       String maxText = info.getMacAddress();
       String ipText = intToIp(info.getIpAddress());
       String status = "";
       if (wifi.getWifiState() == WifiManager.WIFI_STATE_ENABLED)
       {
           status = "WIFI_STATE_ENABLED";
       }
       String ssid = info.getSSID();
       int networkID = info.getNetworkId();
       int speed = info.getLinkSpeed();
       return "mac:" + maxText + "\n\r"
              + "ip:" + ipText + "\n\r"
              + "wifi status :" + status + "\n\r"
              + "ssid :" + ssid + "\n\r"
              + "net work id :" + networkID + "\n\r"
              + "connection speed:" + speed + "\n\r"
              ;
    }
15.获取手机上所有非系统应用
public static ArrayList<AppInfo> getInstalledPackages(Context context)
{
ArrayList<AppInfo> appList = new ArrayList<AppInfo>();
List<PackageInfo> packages = context.getPackageManager()
.getInstalledPackages(0);

for (int i = 0; i < packages.size(); i++)
{
PackageInfo packageInfo = packages.get(i);
AppInfo tmpInfo = new AppInfo();
tmpInfo.appName = packageInfo.applicationInfo.loadLabel(
context.getPackageManager()).toString();
tmpInfo.packageName = packageInfo.packageName;
tmpInfo.versionName = packageInfo.versionName;
tmpInfo.versionCode = packageInfo.versionCode;
tmpInfo.appIcon = packageInfo.applicationInfo
.loadIcon(context.getPackageManager());
if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0)
       {
//如果非系统应用,则添加至appList
           appList.add(tmpInfo);
       }
}
return appList;
}
16.将流转成字节数组
public byte[] stream2Bytes(InputStream is) throws IOException {
byte[] mByte;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length = 0;
while ((length = is.read(buffer, 0, 1024)) != -1) {
baos.write(buffer, 0, length);
}
baos.flush();
mByte = baos.toByteArray();
baos.close();
return mByte;
}

总结4
 
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(" "):

  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);
      }


 


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值