日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

分享几点Android 开发中的小技巧吧。不知道算不算?

發布時間:2025/5/22 Android 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享几点Android 开发中的小技巧吧。不知道算不算? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

也不想多說多,就拿幾點來給大家分享吧:

  • Android 在XML里面共享同一布局文件
  • 使用XML的方式為背景添加漸變的效果
  • 如何用代碼自定義Android 自動生成的標題?
  • 在ActivityGroup里面如何訪問子Activity的View 并操作它去改變UI?

就上面四點吧,這些好像在搜索里面不大搜索得到,我今天就拿出來講講,好像己經有幾個星期沒有更新過博客的Android 文章了,呵呵,之前承諾的Ebook 源碼也沒有跟上,最近人懶,剛買的Ipad 一直在玩,荒廢了學業呢。。。。。

?

好吧。廢話不多說了,一個個說吧。

1.Android 在XMl里面共享同一布局文件

一直以為共享同一布局文件都是在之前寫好的布局之后復制過來,或者通過 java代碼使用layoutInflater Add進來的。但今天提供了一個更為方便的使用方法,可以在你的任意LAYOUT文件里面將其他的LAYOUT文件拿過來使用,代碼也很簡單,如下:

?

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

<LinearLayout?android:id="@+id/FrameLayout01"
????android:background
="@drawable/layout_background"?android:layout_width="fill_parent"
????android:layout_height
="wrap_content"?xmlns:android="http://schemas.android.com/apk/res/android">
????
<TextView?android:text="歡迎你使用本軟件"?android:id="@+id/TextView01"
????????android:textColor
="#f0f0f0"?android:layout_width="wrap_content"
????????android:layout_height
="wrap_content"></TextView>
</LinearLayout>

?

?

這是我定義的公用layout 文件,我給他起名為:title

然后我們在另外的布局文件如下使用:

?

<include?layout="@layout/title"?/>

?

?

即可將title 的布局直接拿到我們當前的布局文件中。

Tip:使用include標記將layout 放入我們當前的layout文件,也可以直接使用當前?view .findViewByid得到title 布局文件中的任意View 。

?

2.使用XML的方式為背景添加漸變的效果

為背景實現漸變效果,最傳統的方法是用PS制作一張漸變的效果圖,但我人懶 沒去學PS技術,也懶得更增加一個圖片在應用里面,這里使用了Google 提供的一個非常棒的方法來解決背景漸變的功能。

首先,在Drawable 文件夾里面添加一個xml文件,然后寫入如下代碼:

?

<?xml?version="1.0"?encoding="UTF-8"?>
<shape?xmlns:android="http://schemas.android.com/apk/res/android">

????
<gradient?android:startColor="#52adcd"?android:endColor="#1c87b1"
????????android:angle
="270.0">

????
</gradient>
?

</shape>

?

對應屬性比較簡單,這里不多做介紹,android:shape="rectangle" 為代表漸變的形狀為矩形塊。android:angle ="270.0"代表角度為270,由上到下的漸變,如果我改變成0那么就變成了從左到右的漸變,如果改變90.0那么漸變會從下邊往下漸變,朋友們可以多改變一下參數試試效果。

發個效果圖吧:

Tip:效果圖用的角度是0。

?

?

3.如何用代碼自定義Android 自動生成的標題?

這個比較簡單只用了三句代碼:

?

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
????????setContentView(R.layout.main);
????????getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,?R.layout.title);

?

?

效果如下圖:

?

Tip:這三句代碼的位置必須如上代碼。

?

4.在ActivityGroup里面如何訪問子Activity的View 并操作它去改變UI?

?

要知道如何在ActivityGroup里面操作子Activity的布局View 那么得先了解一下,如何將Activity放入ActivityGroup 里面,這里我封裝了一個小小的方法,公供參考:

?

????/**
?????*?為ActivityGroup的一個ViewGroup設置動態的Activity?View?對象
?????*?
?????*?
@param?上下文
?????*?
@param?LocalActivityManager對象
?????*?
@param?ActivityGroup想要包容Activity
?????*????????????View?對象的容器(ViewGroup)
?????*?
@param?通過Intent的意圖打算啟用哪個Activity類
?????*?
@param?開始Activity
?????*????????????設置的Id
?????
*/
????
public?static?void?getView(Context?context,?LocalActivityManager?lam,
????????????LinearLayout?layout_load,?Class
<?>?cls,?String?Id)?{
????????Intent?intent?
=?new?Intent(context,?cls);
????????intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
????????Window?w?
=?lam.startActivity(Id,?intent);
????????View?v?
=?w.getDecorView();
????????layout_load.removeAllViews();
????????layout_load.setPadding(
5,?5,?5,?5);
????????layout_load.addView(v,?
new?LinearLayout.LayoutParams(
????????????????LinearLayout.LayoutParams.FILL_PARENT,
????????????????LinearLayout.LayoutParams.FILL_PARENT));
????}

?

?

然后在ActivityGroup頁面如此使用:

?

private?LocalActivityManager?manager;?//聲明一個LocalActivityManager對象
manager?=?getLocalActivityManager();??//得到這個對象
?????

?

?

界面初始化時:

?

????/**
?????*?初始化
?????
*/
????
void?init()?{
????????comonHelp.getView(
this,?manager,?main,?preferenceSet.class,?"swc");
????}

?

有了設置的ID了,那就可以得到當前的Activity 了。

下面給出我用過的一段代碼,以作參考:

?

SharedPreferences.Editor?editor?=?getSharedPreferences(
????????????????????????????????
"com.swc.yaomei_preferences",
????????????????????????????????Activity.MODE_PRIVATE).edit();
????????????????????????LocalActivityManager?manager?
=?getLocalActivityManager();
????????????????????????PreferenceActivity?acitivty?
=?(PreferenceActivity)?manager
????????????????????????????????.getActivity(
"swc");
????????????????????????
for?(int?i?=?0;?i?<?9;?i++)?{
????????????????????????????editor.putString(
"KEY_"?+?i,?"N/A");
????????????????????????????PreferenceScreenExt?ext?
=?(PreferenceScreenExt)?acitivty
????????????????????????????????????.findPreference(
"KEY_"?+?i);
????????????????????????????RelativeLayout?layout?
=?(RelativeLayout)?ext
????????????????????????????????????.getLayout();
????????????????????????????TextView?summary?
=?(TextView)?layout.getChildAt(1);
????????????????????????????summary.setText(
"N/A");
????????????????????????}
????????????????????????editor.commit();
????????????????????????System.gc();

?

?

上面的PreferenceActivity?是得到一個PreferenceAcitity 因為我是要修改位于ActivityGroup里面對應的Preference所以這里要獲得一個PreferenceAcitity ,如果你是一個普通的Activity 直接得到一個Activity 對象就行,之后的操作都是一致的。

?

好了,雖然就這幾個小技巧,但還算是比較實用滴。。。

總結

以上是生活随笔為你收集整理的分享几点Android 开发中的小技巧吧。不知道算不算?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。