android50新控制項
『壹』 android開發 如何在相對布局中動態添加控制項
首先setMargin方法不是RelativeLayout的方法,而是RelativeLayout.LayoutParams的方法。
你應該這麼用:
RelativeLayout layout = new RelativeLayout(this);
layout.setLayoutParams(new RelativeLayout.LayoutParams(-1, -1));
TextView mView = new TextView(this);
mView.setId(2);
mView.setText("this is a test text!");
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
-2, -2);
// layoutParams.setMargins(100, 100, 100, 100);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, -1);
layout.addView(mView, layoutParams);
上例是將一個TextView添加到RelativeLayout的底部。你可以把注釋行取消掉,把下一行注釋,再看下效果。
『貳』 最新的Android控制項有哪些
1.MaterialStepperView
它是用Material Design實現Steppers的。
目前,Stepper只有垂直視圖,但將來會有更多的風格。你可以嘗試一下,如下圖:
你可以自定義normal/active兩個狀態的顏色,完成圖標,開啟動畫並設置動畫時長。可通過Github上的設置項和樣式查閱所有設置項。該庫支持API 17+,詳情請查閱wiki文檔。
2. MultiSnapRecyclerView
這是分屏滾動的Android庫。
MultiSnapRecyclerView為RecyclerView提供了分屏功能。
目前提供的功能有:
start, end和center三個位置的吸附,
snap count 指定要分屏的數量,
支持水平和垂直分屏,
滾動時的回調。
3. Garland View for Android
該庫可實現如下的布局:
GarlandView 外部是一個水平滾動的視圖,視圖內的每一個子視圖可垂直滾動。
你可以在README中找到其他重要信息。還有一個示例App。該庫支持API 19及更高版本。
4. VegaLayoutManager
這是一個自定義的布局管理器——滾動時縮小並淡出頭部。這是受到Dribble項目的啟發。
5. ExpandableLayout
這個庫的名字不言而喻,它是一個基於LinearLayout的可擴展的布局。
README里含有你啟動時需要的所有信息,另外,還有一個示例App可以幫助你快速跳轉到代碼中。
6. SwipeBackLayout
SwipeBackLayout允許你使用手勢返回上一個界面。
你可以設置滑動方向,如從左到右、從右到左、從頂部到底部、從底部到頂部。
你還可以設置是否只能從邊緣滑動。
SwipeBackLayout只能包含一個子布局,例如:
LinearLayout,RelativeLayout,FrameLayout,TableLayout等。
ScrollView,HorizontalScrollView,NestedScrollView等。
RecyclerView,AbsListView(ListView)等子類。
ViewPager,WebView等。
該項目裡面有一個詳細說明的文檔、示例APP和一個APK。
『叄』 Android基礎技術及基本控制項
安卓基礎技術主要是講解一些安卓系統運行的原理,還有一些基本的組件,所有的安卓應用程序都是在這些組件構成的,基本控制項主要就是一些類似按鈕,進度條,滾動條這些圖形界面組件,還有一些是用戶自定義的組件。
『肆』 android 控制項移動方法
Android控制項位置都是自己設置的。
如果要控制項放到任意位置,建議用RelativeLayout(相對布局)
然後給控制項添加屬性,把控制項放到想要的位置
下面是相對布局中 控制項能用到的屬性。
屬性值為true可false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相對於父元素完全居中
android:layout_alignParentBottom 貼緊父元素的下邊緣
android:layout_alignParentLeft 貼緊父元素的左邊緣
android:layout_alignParentRight 貼緊父元素的右邊緣
android:layout_alignParentTop 貼緊父元素的上邊緣
屬性值必須為id的引用名
android:layout_below 在某元素的下方
android:layout_above 在某元素的上方
android:layout_toLeftOf 在某元素的左邊
android:layout_toRightOf 在某元素的右邊
android:layout_alignTop 本元素的上邊緣和某元素的上邊緣對齊
android:layout_alignLeft 本元素的左邊緣和某元素的左邊緣對齊
android:layout_alignBottom 本元素的下邊緣和某元素下邊緣對齊
android:layout_alignRight 本元素的右邊緣和某元素右邊緣對齊
屬性值為具體的像素值班,如30dp
android:layout_marginBottom 離某元素底邊緣的距離
android:layout_marginLeft 離某元素左邊緣的的距離
android:layout_marginRight 離某元素的右邊緣的距離
android:layout_marginTop 離某元素上邊緣的距離
『伍』 android列表常用控制項有哪些
一、概述 Android中的有個原生的下拉列表控制項Spinner,但是這個控制項有時候不符合我們自己的要求, 比如有時候我們需要類似windows 或者web網頁中常見的那種下拉列表控制項,類似下圖這樣的: 這個時候只有自己動手寫一個了。其實實現起來不算很難, 本文實現的方案是採用TextView +ImageView+PopupWindow的組合方案。 先來看看我們的自己寫的控制項效果圖吧:(源碼在文章下面最後給出哈!) 二、自定義下拉列表框控制項的實現 1. 自定義控制項用到的布局文件和資源: 結果框的布局頁面:dropdownlist_view.xml: <?xml version="1.0" encoding="utf-8"?>
『陸』 android界面開發常用的控制項有哪些
控制項開發大致分為兩種: 1.組合式開發。將幾個android現成的控制項,如ImageView,Button等糅合在一起。 2.單獨開發。一般繼承View,然後重寫其onDraw和onMeasure等方法。若是ViewGroup,則還需重寫measureChildren等。 上面說的是2D控制項。3D則需繼承SurfaceView。
『柒』 請問:android如何動態添加控制項,給控制項添加「坐標」,「大小」等,求~~~~
在代碼中可以動態的添加、移除控制項;可以先獲得一個layout的根標簽layoutview,然後使用layoutview.addview(XXX),layoutview.removeview(XXX)之類的方法,動態添加、移除view,代碼中也是可以控制布局的,找點資料看看就明白了,幾句話也說不太明白。
『捌』 Android中有沒有比Spinner控制項更好的選擇
可以使用Button加ListPopupWindow實現和spinner一樣的效果,並且可以監聽到點擊事件(Spinner是不能設置點擊事件的)
布局文件,只有一個button
java"><?xmlversion="1.0"encoding="utf-8"?>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="100dp"
android:layout_height="50dp"
/>
</LinearLayout>
代碼
{
privateButtonbutton;
;
privateList<String>strings;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
strings=newArrayList<String>();
strings.add("item1");
strings.add("item2");
strings.add("item3");
button=(Button)findViewById(R.id.button);
popupWindow=newListPopupWindow(this);
popupWindow.setAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_1,strings));
popupWindow.setAnchorView(button);
popupWindow.setWidth(LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(LayoutParams.WRAP_CONTENT);
popupWindow.setModal(true);
popupWindow.setOnItemClickListener(newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>parent,Viewview,
intposition,longid){
//TODOAuto-generatedmethodstub
button.setText(strings.get(position));
popupWindow.dismiss();
}
});
button.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
popupWindow.show();
}
});
}
}
運行效果
『玖』 求解:android中如何實現動態插入控制項
直接給你上代碼吧,寫了我半個小時,經過了我的測試了的~
運行下就能看到結果了~關鍵的remove的時候有給你寫注釋~
布局的layout文件內容:
----------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/linearlayout">
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:layout_height="wrap_content" android:id="@+id/add"
android:text="Add" android:layout_width="100px"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="100px" android:text="Remove" android:id="@+id/remove"></Button>
</LinearLayout>
<TextView android:id="@+id/TextView01" android:text="This is textView."
android:layout_width="fill_parent" android:gravity="center"
android:layout_height="50px"></TextView>
</LinearLayout>
----------------------------------------------------------------------------------
對應Activity的內容:
----------------------------------------------------------------------------------
package com.foxconn.dialog;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
public class DialogTest extends Activity implements OnClickListener {
private Button add_btn, remove_btn;
private LinearLayout linearLayout;
private int index = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
register();
}
private void register() {
add_btn.setOnClickListener(this);
remove_btn.setOnClickListener(this);
}
private void findViews() {
add_btn = (Button) findViewById(R.id.add);
remove_btn = (Button) findViewById(R.id.remove);
linearLayout = (LinearLayout) findViewById(R.id.linearlayout);
}
protected View createView() {
Button btn = new Button(this);
btn.setId(index++);
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btn.setText("aaaaaa" + index);
return btn;
}
private void removeView() {
//獲取linearlayout子view的個數
int count = linearLayout.getChildCount();
//研究整個LAYOUT布局,第0位的是含add和remove兩個button的layout
//第count-1個是那個文字被置中的textview
//因此,在remove的時候,只能操作的是0<location<count-1這個范圍的
//在執行每次remove時,我們從count-2的位置即textview上面的那個控制項開始刪除~
if (count - 2 > 0) {
//count-2>0用來判斷當前linearlayout子view數多於2個,即還有我們點add增加的button
linearLayout.removeViewAt(count - 2);
}
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.add:
linearLayout.addView(createView(), 1);
break;
case R.id.remove:
removeView();
break;
default:
break;
}
}
}
----------------------------------------------------------------------------------