android控制項及控制項屬性
Ⅰ Android如何多個控制項設置一個屬性
通過設置公共style的方式對同一個屬性進行統一設置
1、res/values文件夾下新建一個xml文件
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<!--定義一個叫et1的style-->
<stylename="et1"parent="@android:style/Widget.EditText">
<!--設置控制項的背景色-->
<itemname="android:background">#1A4EA4</item>
</style>
</resources>
2、組件中使用
<EditTextandroid:layout_width="fill_parent"android:id="@+id/et2"
android:text="自定義樣式一"android:layout_height="wrap_content"style="@style/et1"></EditText><!--設置style為et1,需要設置同樣屬性的其他組件可以都設置成同一個style-->
Ⅱ android 自定義控制項 屬性怎麼用
自定義屬性設置
public class lei extends RelativeLayout {
private TextView tv1
public lei(Context context) {
super(context);
}
public lei(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.item,this);
tv1 = findViewById(R.id.tv1);
TypedArray array = context.obtainStyledAttributes(attrs,R.styleable.lei);
String str1 = (String) array.getText(R.styleable.lei_settitle);
int str2 = array.getColor(R.styleable.lei_setbackgroudcolor,Color.BLACK);
tv1.setText(str1);
tv1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(), "toast", Toast.LENGTH_SHORT).show();
}
});
array.recycle();
}
}
布局控制項
<com.example.administrator.myapplication.lei
android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
cs:setbackgroudcolor="#158616"
cs:settitle="這個是標題"
cs:settitletextcolor="#FFFFFF"
cs:settextrcolor="#FFFFFF"
>
</com.example.administrator.myapplication.lei>
屬性設置
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="lei" >
<attr name="setbackgroudcolor" format="color|reference"/>
<attr name="settitle" format="string|reference"/>
<attr name="settextrcolor" format="color"/>
<attr name="settitletextcolor" format="color"/>
</declare-styleable>
</resources>
Ⅲ 如何獲取Android界面的控制項屬性
objective c 怎樣獲取界面控制項
iewport全部屬性&值如下:width: viewport寬度
height: viewport高度
initial-scale: 初始縮放比例
maximum-scale: 最大縮放比例
minimum-scale: 最小縮放比例
user-scalable: 是否允許用戶縮放例:width=960 或 device-width
height=1000 或 device-height
initial-scale=0.5
maximum-scale=2
minimum-scale=1
user-scalable=1 或 0 (yes 或 no)layout viewport的默認值在Apple實現viewport後,其他瀏覽器也加入了對viewport meta的支持,但彼此間還是有些差異,差異最大的是layout viewport的表現:Safari iPhone: 980px
Opera: 850px
Android WebKit: 800px
Ⅳ android 布局文件中 控制項屬性哪些是必須的哪些是可選的啊
一般用可視化設置控制項後,再打開布局xml文件,裡面有的屬性都是必須得屬性。寬和高當然是必須的,用可視化設置布局後,寬高都是默認值,也可以寫死。
Ⅳ Android如何用代碼實現,給許多控制項設置相同屬性
一、方法
使用getLayoutParams() 和setLayoutParams()方法
二、示例代碼
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) aaa.getLayoutParams();
// 取控制項aaa當前的布局參數
linearParams.height = 365; // 當控制項的高強制設成365象素
aaa.setLayoutParams(linearParams); // 使設置好的布局參數應用到控制項aaa
三、原理
a)getLayoutParams()和setLayoutParams()都是控制項基類view的public方法,在外部也可以直接調用。
b)由於LayoutParams一般是在加入容器中設置的,所以容易混淆所指定的布局屬性究竟是保存在容器中,還是控制項本身的屬性,答案是控制項本身。但是在設置時還是要注意布局屬性與容器種類密切相關。
Ⅵ Android之自定義控制項
一、簡單自定義控制項MyButton
每一個控制項都是一個java類,有對應的代碼,只要你能正確的編寫java代碼,那麼電腦培訓發現可以創造出符合你需求的控制項,即自定義控制項。談脊
1.通過繼承的方式,創建自定義控制項
通過繼承一個現有的控制項,覆蓋其界面的呈現
通過繼承一個包含若乾子控制項的布局
通過繼承一個現有的控制項,覆蓋某個響應事件
繼承一個View來完整自定義一個心控制項
2.使你的自定義控制項繼承自某個最接近的Android控制項,必須是public
一般都會調用父類的構造方法,注意一般有三個構造方法
覆蓋原來控制項的方法,注意是否要再調用super中的方法
在XML中以類全名的方式引用此控制項
二、復雜自定義控制項MyLogin
需要設計包含一組粗虛控制項的自定義控制項就需要用到復雜的自定義控制項
1)使得你的自定義控制項繼承自某個接近的布局
2)正確的實現構造方法:構造方法中實例化目標布局,同時查找到各個子布局
3)添加相應的響應代碼來修改屬性,使得外部能訪問布局中的子控制項
4)在XML中以類全名的方式引用此控制項,完整的岩侍燃包名+類名。
Ⅶ android 怎麼在代碼中獲取控制項的屬性值
如果是自定義的控制項可以用一下代碼TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.MyToggleBtn);// 由attrs 獲得 TypeArray,
如果是系統自帶的控制項,通常控制項點get會有對應的獲取屬性值的方法,如textView.getHeight,不過有些方法如margin,就要通過layoutparam去獲取設置
Ⅷ android中xml中有些控制項的屬性裡面有 "app:.." ,此處的app:是什麼意思和一般的android:有什麼區別
區別是:這兩個是聲明的不同的命名空間,android的是系統的,app是自定義的。
Android自定義控制項的屬性,在xml中使用自己自定義的attr的時候,其中有一步就是要自定義一個xml的命名空間後然後再給自定義屬性賦值,現在發現不知道什麼時候開始Android把這個改了,現在發現可以統一用
xmlns:app="http://schemas.android.com/apk/res-auto"
而不是原來的:
xmlns:app="http://schemas.android.com/apk/App的Package名"
還有人提到在作為lib被使用的時候,也應該用res-auto
所以說區別就是如果你http://schemas.android.com/apk/後面寫的是res/包名,那就是相關包名下的自定義屬性,而res-auto就是所有的自定義包名。