android : orientation (horizontal/vertical) 设置布局水平还是垂直,默认是垂直 LinearLayout中使用
a ndroid : checked (true/false) 标记默认选中,如果是单选则选中最后一个 RadioButton、CheckBox中使用
android: layout_gravity (center/right/left/bottom/top) 父布局中的位置
android: gravity (center/right/left/bottom/top)自己内容的位置 比如Button中的text 的位置
android: hint (string) 提示信息,当文本框为空的时候显示,点击消失 Edittext中使用
android: singleLine (true/false) 设置单行输入,一旦设置为true,则文字不会自动换行
android:textColor(#123456) 设置字体颜色
android: textStyle (bold/italic/bolditalic)设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开
android:textSize (20sp)设置字体大小
android:editable(true/false)是否可编辑 edittext中才有效
android:textColorHighlight (#ffffff) 文字底色
android:textColorHint (#ffffff)提示文字颜色 edittext中才有效
android:textScaleX (15)文字距离
android:background 设置背景 可以是、颜色、@drawable/中的样式
android:layout_weight (1、2、3)权重 一般用在linearLayout中的
android:autoLink(none、web、email、phone、map、all)设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接
android: cursorVisible (true/false)设置光标是否显示
android: digits (123asdasaf/正则表达式) 限制输入内容
android: ellipsize (start、end、middle、marquee)设置当文字过长时,该控件该如何显示。有如下值设置:”start”省略号显示在开头;”end”省略号显示在结尾;”middle”省略号显示在中间;”marquee”以跑马灯的方式显示(动画横向移动)
android :inputType (none、text、textCapCharacters字母大小、textCapWords单词首字母大小、textCapSentences仅第一个字母大小、textAutoCorrect、textAutoComplete自动完成、textMultiLine多行输入、textImeMultiLine输入法多行(如果支持)、textNoSuggestions不提示、textEmailAddress电子邮件地址、textEmailSubject邮件主题、textShortMessage短信息(会多一个表情按钮出来)、textLongMessage长讯息?、textPersonName人名、textPostalAddress地址、textPassword密码、textVisiblePassword可见密码、textWebEditText作为网页表单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numberSigned有符号数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间日期、date日期、time时间。)设置文本类型
android: maxLines 设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示
android:minLines 设置文本的最小行数
android:scrollHorizontally 设置文本超出TextView的宽度的情况下,是否出现横拉条。
android:clickable (true/false) view是否能对click事件作出反应
android:onClick 当view被click之后,view的context的哪个方法被呼叫。通常这个context是指view所在的Activity。例如:android:onClick='sayHello',则相应的Activity里面有一个方法public void sayHello(View view)方法,当这个view被click之后,sayHello方法就会被调用。
android:longClickable true/false view是否可以对长时间的click事件作出反应。
最近项目中接触到接口回调,以及Androidd窗PopWindow组件的使用,现在利用学到的知识自己写了一个简单的Demo,练习下在Android下如何运用接口回调,来实现d窗PopWindow的功能。
1 定义一个接口:OnSelectItemListener。定义一个方法 void selectItem(String name, int type),作为点击d窗的每个Item的回调接口。
2 自定义d窗类:MyPopupWindow,其布局文件为popup_windowxml。当在MainActivity调用其构造函数创建对象时,同时执行initPopupWindow()函数,给每个Item设置监听器,监听点击Item时,回调接口函数selectItem("Pop Window A", POP_WINDOW_ITEM_1),该函数在MainActivity中实现。
3 主Activity: MainActivity。其布局文件为一个Button和一个TextView。监听Button,每当点击则d出PopWindow,呈现三个Item。调用MyPopupWindow类中的方法setOnSelectItemListener(OnSelectItemListener listener),传入OnSelectItemListener 对象作为参数,同时实现回调接口OnSelectItemListener的方法void selectItem(String name, int type)。
主Activity: MainActivity Java
[java] view plain copy
packagecomlambdroidcallbacktest2;
importandroidappActivity;
importandroidcontentContext;
importandroidosBundle;
importandroidviewView;
importandroidwidgetButton;
importandroidwidgetTextView;
importandroidwidgetToast;
//联系接口的回调以及PopWindowd窗的简单使用
publicclassMainActivityextendsActivity {
privateMyPopupWindow myPopupWindow;
privateButton btn_pop_window;
privateTextView tv_display;
protectedContext context;
@Override
protectedvoidonCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_main);
context =this;
btn_pop_window = (Button) findViewById(Ridbtn_pop_window);
tv_display = (TextView) findViewById(Ridtv_display);
//给Button设置事件监听:d出d窗
btn_pop_windowsetOnClickListener(newViewOnClickListener() {
@Override
publicvoidonClick(View v) {
myPopupWindowshow(btn_pop_window);
}
});
myPopupWindow =newMyPopupWindow(context);
//实现OnSelectItemListener接口的selectItem方法:对于d窗三个Item的事件监听
myPopupWindowsetOnSelectItemListener(newOnSelectItemListener() {
@Override
publicvoidselectItem(String name,inttype) {
//点击电站列表,d出d框
if(myPopupWindow !=null&& myPopupWindowisShowing()) {
myPopupWindowdismiss();
}
tv_displaysetText(name);
switch(type){
caseMyPopupWindowPOP_WINDOW_ITEM_1:
ToastmakeText(context,"我是d窗A, 我的英文名是"+ name, ToastLENGTH_SHORT)show();
break;
caseMyPopupWindowPOP_WINDOW_ITEM_2:
ToastmakeText(context,"我是d窗B, 我的英文名是"+ name, ToastLENGTH_SHORT)show();
break;
caseMyPopupWindowPOP_WINDOW_ITEM_3:
ToastmakeText(context,"我是d窗C, 我的英文名是"+ name, ToastLENGTH_SHORT)show();
break;
default:
break;
}
}
});
}
}
activity_mainxml
[html] view plain copy
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:id="@+id/btn_pop_window"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="20dp"
android:padding="20dp"
android:text="Pop Window"
android:textSize="20sp"/>
android:id="@+id/tv_display"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="Hello World!"
android:textSize="30sp"/>
自定义d窗类:MyPopupWindowjava
[java] view plain copy
packagecomlambdroidcallbacktest2;
importandroidappActionBar;
importandroidcontentContext;
importandroidgraphicsdrawableColorDrawable;
importandroidviewLayoutInflater;
importandroidviewView;
importandroidwidgetLinearLayout;
importandroidwidgetPopupWindow;
publicclassMyPopupWindowimplementsViewOnClickListener{
privatePopupWindow mPopWindow;
privateContext mContext;
privateLinearLayout llPop1;
privateLinearLayout llPop2;
privateLinearLayout llPop3;
privateintpw_height;
publicstaticfinalintPOP_WINDOW_ITEM_1 =1;
publicstaticfinalintPOP_WINDOW_ITEM_2 =2;
publicstaticfinalintPOP_WINDOW_ITEM_3 =3;
privateOnSelectItemListener listener;
publicvoidsetOnSelectItemListener(OnSelectItemListener listener){
thislistener = listener;
}
publicMyPopupWindow(Context context){
mContext = context;
initPopupWindow();//初始化d窗
}
publicvoidinitPopupWindow(){
View view = LayoutInflaterfrom(mContext)inflate(Rlayoutpopup_window,null);
mPopWindow =newPopupWindow(view, ActionBarLayoutParamsWRAP_CONTENT, ActionBarLayoutParamsWRAP_CONTENT,true);
mPopWindowsetOutsideTouchable(true);
/ 为其设置背景,使得其内外焦点都可以获得 /
mPopWindowsetBackgroundDrawable(newColorDrawable());
mPopWindowsetFocusable(true);
pw_height = viewgetHeight();
llPop1 = (LinearLayout) viewfindViewById(Ridll_pop_1);
llPop1setOnClickListener(this);
llPop2 = (LinearLayout) viewfindViewById(Ridll_pop_2);
llPop2setOnClickListener(this);
llPop3 = (LinearLayout) viewfindViewById(Ridll_pop_3);
llPop3setOnClickListener(this);
}
//监听三个d窗的点击事件
@Override
publicvoidonClick(View v) {
switch(vgetId()){
caseRidll_pop_1:
if(listener !=null) {
listenerselectItem("Pop Window A", POP_WINDOW_ITEM_1);//回调接口
}
break;
caseRidll_pop_2:
if(listener !=null) {
listenerselectItem("Pop Window B", POP_WINDOW_ITEM_2);
}
break;
caseRidll_pop_3:
if(listener !=null) {
listenerselectItem("Pop Window C", POP_WINDOW_ITEM_1);
}
break;
default:
break;
}
}
//显示d窗,并设置d窗基于标题栏的显示位置
publicvoidshow(View view) {
//popupwindow相对view位置x轴偏移量
View viewTemp = mPopWindowgetContentView();
viewTempmeasure(0,0);
intwidth = viewTempgetMeasuredWidth();
intxOffset = (viewgetWidth() - width) /2;
mPopWindowshowAsDropDown(view, xOffset,0);
}
/
退出popupwindow
/
publicvoiddismiss() {
if(mPopWindow !=null&& mPopWindowisShowing()) {
mPopWindowdismiss();
}
}
/
popupwindow是否正在显示
/
publicbooleanisShowing() {
if(mPopWindow !=null) {
returnmPopWindowisShowing();
}
returnfalse;
}
}
popup_windowxml
[html] view plain copy
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
android:id="@+id/ll_alarm_type"
android:layout_width="120dp"
android:layout_height="130dp"
android:orientation="vertical"
android:background="@drawable/popupwindow"
android:paddingBottom="16dp"
android:paddingTop="16dp">
android:id="@+id/ll_pop_1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="5dp"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="窗口 A"
android:textSize="15sp"
android:textColor="#ffffff"/>
android:id="@+id/ll_pop_2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="窗口 B"
android:textSize="15sp"
android:textColor="#ffffff"/>
android:id="@+id/ll_pop_3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="窗口 C"
android:textSize="15sp"
android:textColor="#FFFFFF"/>
回调接口:OnSelectItemListener
[java] view plain copy
packagecomlambdroidcallbacktest2;
publicinterfaceOnSelectItemListener {
voidselectItem(String name,inttype);
}
点击Button,d出d窗,显示三个Item
点击第二个Item,通过回调函数,来实现TextView内容的修改,以及d出Toast
总结
Java回调情形涉及很多,本文属于接口的异步回调:当不知道何时会执行接口的回调函数,(通过接口回调来对获取到的资源的 *** 作)。除此还有线程间的异步回调(子线程进行耗时 *** 作, *** 作完毕通知主线程或将数据传给主线程处理),以及利用接口回调来实现线程间的数据通信等等(Android可以利用Handler来实现)。等下次再举例说明Java回调函数的其它情形。
以上就是关于Android-RelativeLayout(相对布局)全部的内容,包括:Android-RelativeLayout(相对布局)、Android 中代码定义颜色的几种方式、android设置控件样式(边框颜色,圆角)和图片样式(圆角)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)