当前位置: 首页 > news >正文

受欢迎的大连网站建设手把手教你建网站

受欢迎的大连网站建设,手把手教你建网站,广西做网站,win7 iis配置网站 视频教程常用控件和布局的继承结构#xff0c;如下图#xff1a; #xff08;待续。。。。#xff09; 所有的控件都是直接或间接继承自View的#xff0c;所用的所有布局都是直接或间接继承自ViewGroup的#xff0c;View是Android中最基本的一种UI组件#xff0c;它可以在屏幕上…常用控件和布局的继承结构如下图 待续。。。。 所有的控件都是直接或间接继承自View的所用的所有布局都是直接或间接继承自ViewGroup的View是Android中最基本的一种UI组件它可以在屏幕上绘制一块矩形区域并能响应这块区域的各种事件ViewGroup是一中特殊的View它可以包含很多的子View和子ViewGroup是一个用于放置控件和布局的容器。 我们可以利用上面的继承结构来创建自定义控件创建自定义控件的两种简单方法如下所示。 我们先创建一个UICustomViews项目。 1、引入布局 Android系统已经给每个活动提供了标题栏功能但我们决定先不使用它而是创建一个自定义的标题栏。 只需要两个Button和一个TextView然后在布局中摆好就可以了但是一般我们的程序中可能有很多个活动都需要这样的标题栏如果在每个活动的布局中都编写一遍同样的标题栏代码明显的就会导致代码的大量重复这个时候我们可以引入布局的方式来解决这个问题。我们在layout目录下新建一个布局文件title.xml代码如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentButtonandroid:idid/title_backandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:layout_margin5dpandroid:background#000android:textBackandroid:textColor#f00/TextViewandroid:idid/title_textandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:layout_weight1android:gravitycenterandroid:background#000android:textTitle Textandroid:textColor#f5fandroid:textSize24sp/Buttonandroid:idid/title_editandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:layout_margin5dpandroid:background#000android:textEditandroid:textColor#f00/ /LinearLayout 我们在LinearLayout中分别加入了两个Batton和一个TextView左边的Button可用于返回右边的Button可用于编辑中间的TextView则可以用来显示一段标题文本。熟悉一下属性其中android:backgroud用于为布局或控件指定一个背景可以使用颜色或者是照片来进行填充。 另外在两个Button中我们都使用了android:layout_margin这个属性它可以指定控件在上下左右方向上偏移的距离当然也可以使用android:layout_marginLeft或者android:layout_marginTop等属性来单独指定控件在某个方向上偏移的距离。 那么标题栏文件title.xml我们已经编写完成那我们如何在程序中使用这个标题栏呢修改acticity_main.xml中的代码如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:contextcom.example.uicustomviews.MainActivity include layoutlayout/title//LinearLayout 我们只需要通过一行include语句将标题栏布局引进来就可以了。 但是最后不要忘了在MainActivity中将系统自带的标题栏隐藏掉代码如下 package com.example.uicustomviews;import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle;public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); ActionBar actionBar getSupportActionBar();if(actionBar ! null){actionBar.hide();}} } 我们调用了getSupportActionBar()方法来获得ActionBar的实例然后再调用ActionBar的hide()方法将标题栏隐藏起来。 使用这种方式不管有多少布局需要标题栏只需要一行include语句就可以了。 测试用例如下2、创建自定义组件 引入布局的技巧确实解决了重复编写布局代码的问题但是如果布局中有一些控件要求能够响应事件我们还是需要在每个活动中为这些控件单独编写一次事件注册的代码。比如说标题栏的返回按钮不管在哪一个活动中都是用来销毁当前活动。为了不增加重复代码我们使用自定义控件的方式来解决。 新建TitleLayout继承自LinearLayout让它成为我们自定义的标题栏控件代码如下 package com.example.uicustomviews;import android.content.Context; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.LinearLayout;public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ActionBar actionBar getSupportActionBar();if(actionBar ! null){actionBar.hide();}}public class TitleLayout extends LinearLayout {public TitleLayout(Context context, AttributeSet attrs) {super(context, attrs);LayoutInflater.from(context).inflate(R.layout.title, this);}} } 我们重写了LinearLayout中带有两个参数的构造函数在布局文件中引入TitleLayout控件就会调用这个构造函数然后在构造函数中需要对标题进行动态加载这就是要LayoutInflator来实现了。通过LayoutInflator的from()方法可以构建出一个LayoutInflater对象然后调用inflator()方法就可以动态加载一个布局文件inflate()接收两个参数第一个参数是要加载的布局文件的id我们传入的是R.layout.title第二个参数是给加载好的布局再添加一个父布局我们指定为TitleLayout,于是直接传入this。 现在自定义控件已经建好3、我们还需要在布局文件中添加这个自定义控件修改activity_main.xml中的代码如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent com.example.uicustomviews.TitleLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_content //LinearLayout 重新运行程序 为标题栏的按钮注册点击事件修改TitleLayout中的代码如下 package com.example.uicustomviews;import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast;public class TitleLayout extends LinearLayout {public TitleLayout(Context context, AttributeSet attrs) {super(context, attrs);LayoutInflater.from(context).inflate(R.layout.title, this); Button titleBack (Button) findViewById(R.id.title_back);Button titleEdit (Button) findViewById(R.id.title_edit);titleBack.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {((Activity) getContext()).finish();}});titleEdit.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {Toast.makeText(getContext(), You clicked Edit button,Toast.LENGTH_SHORT).show();}});}} 首先通过findViewById()方法得到按钮的实例然后分别调用setOnClickListener()方法给两个按钮注册了点击事件当点击返回按钮时销毁当前的活动当点击编辑按钮时弹出一段文本。 效果如下图
http://www.lebaoying.cn/news/6118.html

相关文章:

  • 建站系统加盟高清免费观看电视网站
  • 博敏网站建设WordPress工具站点
  • flash源码网站电商都有哪些平台
  • wordpress站点改名公关公司如何处理危机
  • 专注WordPress网站建设开发网站群建设厂家
  • 沈阳网站定制开发南京网站建设小程
  • 专业做logo的网站提供商城网站制作
  • 企业网站备案要钱吗廊坊seo公司
  • 彩虹网站建设app与网站的关系
  • 福州外贸网站制作深圳科技公司排名100
  • 做网站怎么防止被黑ip地址进入网站怎么做的
  • 为什么网站开发需要写php品牌网站建设 磐石网络官方网站
  • 网站站内优化怎么做国外ps教程网站
  • 自建站运营wordpress后台很卡怎么办
  • 59网站一起做网店广州广州优壹网络科技有限公司
  • 打鱼在线游戏网站建设自己怎么创网站
  • 英文网站建设之后怎么推湖南人文科技学院怎么样
  • 服装平台网站有哪些网站慢的原因
  • 最专业企业营销型网站建设全民推广
  • 用服务器ip做网站域名thinkphp做的教育网站
  • 网站建设新方向html网页制作代码作业
  • 哪个网站做外贸生意高端网站建设的品牌
  • 机械设计平台南京百度搜索优化
  • 宿迁做网站电话微信小程序在哪里登录
  • 网站开发硬件成本网站诊断结论
  • 贵州省公路建设集团有限公司网站建和做网站
  • 桓台县旅游网站建设如何建设盈利网站
  • 网站整站截图.net网站开发模板
  • 陇南市城乡建设局网站襄樊网站制作公司
  • 对网站建设这门课程的想法dw网页制作图片