當前位置:首頁 » 安卓系統 » androidxml配置

androidxml配置

發布時間: 2022-06-21 11:39:31

Ⅰ android開發 自定義控制項怎麼在xml文件中配置 尤其是最上面的<LinearLayout >那部分

自已控制項就是你先寫好你的控制項代碼,假如你自定義了一個MyButton,然後這個MyButton類你放在com.app包裡面,那麼你在xml配置代碼如下

<com.app.MyButton
android:layout_heigjt........... 屬性/>

希望能幫到您

Ⅱ 與安卓xml配置文件,如何按百分比設置按鈕圖標

1.將button的長度單位設置為"dp"可以在一定程度上解決不同設備上顯示比例不同問題
2.android:layout_weight="1"這個屬性是根據屏幕的長寬和各個控制項的比例設置按比例顯示控制項的.

Ⅲ android6.0怎樣在.xml里配置去掉標題欄

Android開發去除標題欄title其實非常簡單,他有兩種方法,一種是在代碼中添加,另一種是在AndroidManifest.xml中添加:
1、在代碼中實現:
在此方法setContentView(R.layout.main)之前加入:
requestWindowFeature(Window.FEATURE_NO_TITLE);標題欄就沒有了。
2、在AndroidManifest.xml中實現:
注冊Activity時加上如下的一句配置就可以實現。

Ⅳ android 是怎麼通過在XML中配置的控制項屬性得到具體的view對象

我可能表達的不是很清楚,那就拿個具體的例子來說明吧
比如說,在Activity中我們需要用到一個ProgressBar控制項,我們一般先在layout下的main.xml中進行配置
Xml代碼
<ProgressBar
android:id="@+id/pb1"
android:layout_width="fill_parent"
android:layout_height="20dip"
<span style="color: #ff0000;"> android:indeterminateOnly="false"</span>

android:layout_gravity="center_vertical"
android:progressDrawable="@android:drawable/progress_horizontal"
android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
android:minHeight="20dip"
android:maxHeight="20dip"
/>

我們看 android:indeterminateOnly="false" 這行代碼的
一般我們如果要將在代碼中創建一個ProgressBar,但是不通過配置文件得到。
代碼如下:
java代碼
ProgressBar mProgressBar=new ProgressBar(context);

<span style="color: #ff0000;">mProgressBar.setIndeterminate(false); </span>

mProgressBar.setProgressDrawable(getResources().getDrawable
(android.R.drawable.progress_horizontal));

mProgressBar.setIndeterminateDrawable(getResources().getDrawable
(android.R.drawable.progress_indeterminate_horizontal));

本來我們是希望創建一個普通的能顯示進度的橫條ProgressBar
但是我們發現progressBar中的進度無法更新。
我們來看進度更新的源代碼setProgress():
Java代碼
@android.view.RemotableViewMethod
synchronized void setProgress(int progress, boolean fromUser) {
<span style="color: #ff0000;"> if (mIndeterminate) {
return;
}</span>

if (progress < 0) {
progress = 0;
}
if (progress > mMax) {
progress = mMax;
}
if (progress != mProgress) {
mProgress = progress;
refreshProgress(R.id.progress, mProgress, fromUser);
}
}

關鍵是: if (mIndeterminate) { return; }
原來mIndeterminate 的值為true的話,函數直接返回了,也就是我們不能設置progressBar的進度(mProgress)
現在我們的任務是將mIndeterminate 屬性設置為false
但是我們發現 mProgressBar.setIndeterminate(false); 這行代碼並沒有設置mIndeterminate 屬性為false
我們看ProgressBar中的源代碼:

Java代碼
@android.view.RemotableViewMethod
public synchronized void setIndeterminate(boolean indeterminate) {
<span style="color: #ff0000;"> if ((!mOnlyIndeterminate || !mIndeterminate) && indeterminate != mIndeterminate) {</span>

mIndeterminate = indeterminate;

if (indeterminate) {
// swap between indeterminate and regular backgrounds
mCurrentDrawable = mIndeterminateDrawable;
startAnimation();
} else {
mCurrentDrawable = mProgressDrawable;
stopAnimation();
}
}
}

看這行代碼: if ((!mOnlyIndeterminate || !mIndeterminate) && indeterminate != mIndeterminate) {
我們發現當mOnlyIndeterminate 和mIndeterminate 之前都為true時,我們並不能將mIndeterminate 從true改變為false

google後,有人通過反射機制將ProgressBar中的mOnlyIndeterminate 設置為false(具體請看:關於使用代碼來創建ProgressBar )

我現在我就在想 既然 ProgressBar中的mOnlyIndeterminate 和mIndeterminate屬性都是private,而且都不能通過get和set方法來對其進行操作,那麼 android 通過在XML中配置的控制項屬性,是怎麼被轉換成真正的java類呢?

求大神解惑!

問題補充

over140 寫道
你應該看一下他源碼里關於這個的構造函數部分的代碼,注意父類裡面可能也有代碼,他並不是轉換成java類,只是讀取從XML屬性讀取想要的參數。

你指的是ProgressBar類中的構造函數嗎? 我之前就仔細看了這些東西
ProgressBar中構造函數源碼:
Java代碼
/**
* Create a new progress bar with range 0...100 and initial progress of 0.
* @param context the application environment
*/
public ProgressBar(Context context) {
this(context, null);
}

public ProgressBar(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.progressBarStyle);
}

public ProgressBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mUiThreadId = Thread.currentThread().getId();
initProgressBar();

TypedArray a =
context.obtainStyledAttributes(attrs, R.styleable.ProgressBar, defStyle, 0);

mNoInvalidate = true;

Drawable drawable = a.getDrawable(R.styleable.ProgressBar_progressDrawable);
if (drawable != null) {
drawable = tileify(drawable, false);
setProgressDrawable(drawable);
}

mDuration = a.getInt(R.styleable.ProgressBar_indeterminateDuration, mDuration);

mMinWidth = a.getDimensionPixelSize(R.styleable.ProgressBar_minWidth, mMinWidth);
mMaxWidth = a.getDimensionPixelSize(R.styleable.ProgressBar_maxWidth, mMaxWidth);
mMinHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_minHeight, mMinHeight);
mMaxHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_maxHeight, mMaxHeight);

mBehavior = a.getInt(R.styleable.ProgressBar_indeterminateBehavior, mBehavior);

final int resID = a.getResourceId(
com.android.internal.R.styleable.ProgressBar_interpolator,
android.R.anim.linear_interpolator); // default to linear interpolator
if (resID > 0) {
setInterpolator(context, resID);
}

setMax(a.getInt(R.styleable.ProgressBar_max, mMax));

setProgress(a.getInt(R.styleable.ProgressBar_progress, mProgress));

setSecondaryProgress(
a.getInt(R.styleable.ProgressBar_secondaryProgress, mSecondaryProgress));

drawable = a.getDrawable(R.styleable.ProgressBar_indeterminateDrawable);
if (drawable != null) {
drawable = tileifyIndeterminate(drawable);
setIndeterminateDrawable(drawable);
}

mOnlyIndeterminate = a.getBoolean(
R.styleable.ProgressBar_indeterminateOnly, mOnlyIndeterminate);

mNoInvalidate = false;

setIndeterminate(mOnlyIndeterminate || a.getBoolean(
R.styleable.ProgressBar_indeterminate, mIndeterminate));

a.recycle();
}

看以上代碼,發現ProgressBar類並沒有使用其父類的構造方法, 它的三個構造方法最終都需要進入到第三個構造方法內,
再看這一句
Java代碼
initProgressBar();

其中具體源碼如下:
Java代碼
private void initProgressBar() {
mMax = 100;
mProgress = 0;
mSecondaryProgress = 0;
mIndeterminate = false;
mOnlyIndeterminate = false;
mDuration = 4000;
mBehavior = AlphaAnimation.RESTART;
mMinWidth = 24;
mMaxWidth = 48;
mMinHeight = 24;
mMaxHeight = 48;
}

看 這兩句:
Java代碼
mIndeterminate = false;
mOnlyIndeterminate = false;

奇怪 在這個初始化ProgressBar的過程中,明明將mIndeterminate和mOnlyIndeterminate屬性設置為false
但是我們初始化後的進度條,顯示後同樣是不會進度的(圖如下)

也就是說 mIndeterminate屬性依然是true(具體請看ProgressBar中的setProgress()方法)

繼續看構造方法中的其他內容時,發現關鍵所在:
Java代碼
mOnlyIndeterminate = a.getBoolean(
R.styleable.ProgressBar_indeterminateOnly, mOnlyIndeterminate);

mNoInvalidate = false;

setIndeterminate(mOnlyIndeterminate || a.getBoolean(
R.styleable.ProgressBar_indeterminate, mIndeterminate));

這兩句將mOnlydeterminate和mIndeterminate屬性都設置為true,
看到這里,發現這兩句都用到 a 這個對象,a 具體是什麼呢?

Java代碼
TypedArray a =
context.obtainStyledAttributes(attrs, R.styleable.ProgressBar, defStyle, 0);

那我們能不能通過改變傳入 構造函數 的參數 來使 a 發生相應的變化,進而使mOnlyIndeterminate和mIndeterminate屬性設置為 true 呢?
再往下深入,發現看的我那是一頭霧水,完全找不到方向,所以只得放棄這個猜想。

到最後,我發現 如果要通過正常的java訪問機制(當然排除使用反射機制),來操作mOnlyIndeterminate和mIndeterminate屬性是不可能的,

你說: 他並不是轉換成java類,只是讀取從XML屬性讀取想要的參數。

我們一般是通過findViewById()來根據layout中的XML文件設置的控制項屬性得到 具體的View控制項對象(關於轉換成java類,我錯了,其實我想說的是怎麼得到的這個對象),
這個過程是不是也是通過反射機制來完成的?假如是的話,能給我提供些具體過程的資料呢?

Ⅳ android xml配置文件中一些標簽的作用

第一個xml是控制項動畫的xml,interpolator設置動畫播放的速度模型,這個設置的是播放速度逐漸變慢。第一個scale是縮放的動畫,ration是動畫時間,從0.9倍放大到1倍,pivot是指參照哪個點進行縮放,這個設置的50%是指中心。alpha是改變透明度的動畫,從0完全透明到1完全不透明。
第二個xml官方叫法是背景選擇器,就是改變按鈕之類的控制項在選中、獲得焦點及通常狀態時的背景的,可以是純色,也可以像你這個似的是drawable中的圖片。在選擇背景時從上到下找到第一個符合條件的為准,state_之類的是各種條件,pressed按下,focused獲得焦點,等等,最後一個item是表示默認條件即之前條件都不滿足時的背景。

Ⅵ android xml 怎麼設置版本最低和最高

<uses-sdk android:minSdkVersion="4" 
          android:maxSdkVersion="10" />

第一個是最低,第二個是最高。

Ⅶ 怎麼在android的xml文件中設置activity的背景

我們都知道在Android中某些功能的實現往往有兩種方法:一種是在xml文件中設置相應屬性,另一種是用代碼實現。同樣Android實現全屏顯示也可以通過這兩種方法實現:
1、在AndroidManifest.xml的配置文件裡面的<activity>標簽添加屬性:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
2、在Activity的onCreate()方法中的super()和setContentView()兩個方法之間加入下面兩條語句:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題欄
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息欄
上述轉自:http://www.cnblogs.com/wader2011/archive/2011/11/19/2255045.html

修改為黑底白字
修改AndroidManifest.xml
把android:theme="@style/AppTheme" 修改為
android:theme="@android:style/Theme.Black「
修改為白底黑字
android:theme="@android:style/Theme.Light「

Ⅷ 在android xml配置文件怎麼配置 checkbox 組

在layout下的xml中連續定義
<LinearLayout android:layout_width="wrap_content"........>
<CheckBox android:....../>
<CheckBox android:....../>
<CheckBox android:....../>
</LinearLayout>

Ⅸ android 怎麼讀取在androidmanifest.xml中配置xml文件

一、關於AndroidManifest.xmlAndroidManifest.xml 是每個android程序中必須的文件。它位於整個項目的根目錄,描述了package中暴露的組件(activities, services, 等等),他們各自的實現類,各種能被處理的數據和啟動位置。 除了能聲明程序中的Activities, ContentProviders, Services, 和Intent Receivers,還能指定permissions和instrumentation(安全控制和測試)二、AndroidManifest.xml結構 三、各個節點的詳細介紹 上面就是整個am(androidManifest).xml的結構,下面以外向內開始闡述~~1、第一層():(屬性)A、xmlns:android定義android命名空間,一般為/apk/res/android,這樣使得Android中各種標准屬性能在文件中使用,提供了大部分元素中的數據。B、package指定本應用內java主程序包的包名,它也是一個應用進程的默認名稱android 怎麼讀取在androidmanifest.xml中配置xml文件

Ⅹ android中怎麼在AndroidManifest.xml文件中配置Service

第一個name是你service位置的,包括完整的包名和service名。如果包名就是你定義的程序包名,也就是和gen目錄下那個包的名字一樣的話,直接".service名"就可以了。第二個name是你調用service時intent.setAction();中的參數,這個你可以自己隨便定義的。

熱點內容
netgear遠程訪問 發布:2024-04-28 23:06:18 瀏覽:531
javaweb整合開發 發布:2024-04-28 23:03:49 瀏覽:456
福康中國伺服器地址 發布:2024-04-28 22:47:20 瀏覽:745
mcryptphp 發布:2024-04-28 22:29:12 瀏覽:194
程序源代碼加密 發布:2024-04-28 22:10:42 瀏覽:835
安卓轉移到ios有什麼變化 發布:2024-04-28 22:01:05 瀏覽:392
三洋電視wifi解鎖密碼是多少 發布:2024-04-28 21:59:36 瀏覽:628
東方財富登陸密碼是什麼 發布:2024-04-28 21:49:54 瀏覽:735
怎麼看電腦wifi的密碼 發布:2024-04-28 21:42:26 瀏覽:297
怎樣在全民k歌上傳照片 發布:2024-04-28 21:37:59 瀏覽:841