zoukankan      html  css  js  c++  java
  • Android进阶之代码应用技巧


    博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 


    1、给文字加下划线

    email_name.setText(Html.fromHtml("<u>" + email.title + "</u>"));
    2、文字图片一起排,并加以间隔

            android:drawableLeft="@drawable/user_id"
            android:drawablePadding="10dip"

    3、获得手机串号

    TelephonyManager telephonyManager = (TelephonyManager) MarketApplication.sContext
    .getSystemService(Context.TELEPHONY_SERVICE); 
    String imei = telephonyManager.getDeviceId(); 

    4、改变tabwidget背景色

    		tabWidget.getChildAt(i).setBackgroundResource(
    					R.drawable.tab_bar_mask3);

    5、去掉tabhost下的白线

    	tabHost.setPadding(tabHost.getPaddingLeft(), tabHost.getPaddingTop(),
    				tabHost.getPaddingRight(), tabHost.getPaddingBottom() - 10);

    6、获得View在控件的上下左右间距

    		int[] loc = new int[2];
    		// if (fromWindowsLoc) {
    		// anchor.getLocationInWindow(loc);
    		// } else {
    		anchor.getLocationOnScreen(loc);
    		// // }
    		int l = loc[0];//左
    		int t = loc[1];//上
    		// 组件上下:445:474
    		int r = l + anchor.getWidth();// 右
    		int b = t + anchor.getHeight();// 下
    		Rect localRect = new Rect(l, t, r, b);

    7、获得sd卡上的图片,并加载

    ImageView.setImageUri(Uri.fromFile(new File("/sdcard/cats.jpg"))); 

    8、解析文字

    URLDecoder.decode(searchkeyword, "gb2312")

    9、Activity里嵌入Activity

    		ll.removeAllViews();
    				Intent it = new Intent(new Intent(SearchActivity.this,
    						SearchAndroidList.class));
    				it.putExtra(AppData.PAPER_QUERY, query);
    				ll.addView(getLocalActivityManager().startActivity(
    						"SearchAndroidList",
    						it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
    						.getDecorView());

    10、android 屏幕常亮保持

    相关的变量:

     PowerManager powerManager = null;
        WakeLock wakeLock = null;

    初始化:

    powerManager = (PowerManager) this
                    .getSystemService(Service.POWER_SERVICE);
            wakeLock = this.powerManager.newWakeLock(
                    PowerManager.SCREEN_DIM_WAKE_LOCK, "My Lock");

    开启屏幕常亮:

     wakeLock.setReferenceCounted(false);
                wakeLock.acquire();

    关闭你的程序设置的屏幕常亮:

     wakeLock.release();

    注意的地方:我在实际的调试过程中,没有设置wakeLock.setReferenceCounted(false);这个,报错为:java.lang.RuntimeException: WakeLock under-locked


                     阅读源码:

    acquire()函数如下:
    
                            public void acquire()
            {
                synchronized (mToken) {
                    if (!mRefCounted || mCount++ == 0) {
                        try {
                            mService.acquireWakeLock(mFlags, mToken, mTag);
                        } catch (RemoteException e) {
                        }
                        mHeld = true;
                    }
                }
            }
    
      release()函数如下:
    
                   public void release()
            {
                release(0);
            }
    
           public void release(int flags)
            {
                synchronized (mToken) {
                    if (!mRefCounted || --mCount == 0) {
                        try {
                            mService.releaseWakeLock(mToken, flags);
                        } catch (RemoteException e) {
                        }
                        mHeld = false;
                    }
                    if (mCount < 0) {
                        throw new RuntimeException("WakeLock under-locked " + mTag);
                    }
                }
            }

    报错就抱在release(int flags)中,mCount为负数了,抛除了异常


    我们再看下:setReferenceCounted(boolean flags);
       public void setReferenceCounted(boolean value)
            {
                mRefCounted = value;
            }
    

    这个函数的作用是是不是需要计算锁的数量,设置为false时,在release()的时候,不管你acquire()了多少回,可以releaseWakeLock掉



    11、不让图片变形充满整个屏幕

    	imageView.setAdjustViewBounds(true);//不让图片充满全局

    12、设背景色为透明

    getWindow().setBackgroundDrawable(new ColorDrawable(0));

    13、中文排版不整齐,一个match_parent解决问题。

  • 相关阅读:
    Linux 笔记 —— SVN和FTP的安装
    在.NET中使用Javascript作为脚本语言(v8最新版)
    回调的经典应用
    Javascript.NET(V8Wrapper) 更新,自定义映射别名
    SQLServer 的视图自带缓存特效?!
    关于 Twing Hot Link 的一些事
    Twing Hot Link For PSP 开发笔记(1)
    新闻发布系统
    Spring MVC入门讲解
    f(f(x))=x, 纯数学理解
  • 原文地址:https://www.cnblogs.com/fengju/p/6174489.html
Copyright © 2011-2022 走看看