Androidの階段を進むコードの応用テクニック
4920 ワード
ブログの起源:http://blog.csdn.net/liuxian13183転載は出典を明記します!All Rights Reerved!
1、文字に下線を付ける
関連する変数:
11、画面全体に画像を変形させない
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();
注意するところ:実際のデバッグの過程で、ウォークロック.set ReferenceCounted(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はマイナスです。例外を除いて、私達はもう見てみます。 public void setReferenceCounted(boolean value)
{
mRefCounted = value;
}
この関数の役割はロックの数を計算する必要がありますか?falseに設定した場合、release()に設定した場合、何回もacquire()を使っても、release WakeLockを落とすことができます。11、画面全体に画像を変形させない
imageView.setAdjustViewBounds(true);//
12、背景色を透明にするgetWindow().setBackgroundDrawable(new ColorDrawable(0));
13、中国語のレイアウトが不揃いで、一つのmatch_parentは問題を解決します。