Android中ListView点击
ListView的item里面的button或ImageView不能同时生效
的解决方法
研究ListView,首先ListView的适配器类型分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。
ArrayAdapter的构造需要三个参数,依次为this,布局文件(注意这里的布局文件描述的是列表的每一行的布局,https://www.sodocs.net/doc/a718799118.html,yout.simple_list_item_1是系统定义好的布局文件只显示一行文字,数据源(一个List集合)。同时用setAdapter()完成适配的最后工作。
使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行。HashMap的每个键值数据映射到布局文件中对应id的组件上。因为系统没有对应的布局文件可用,我们可以自己定义一个布局。下面做适配,new一个SimpleAdapter参数一次是:this,
布局文件,HashMap的title和info,img。布局文件的组件id,title,info,img。布局文件的各组件分别映射到HashMap的各元素上,完成适配。
然后我在使用SimpleAdapter的时候,希望在SimpleAdapter中添加的ImageView图片并且添加点击事件,我通过ID找到这个组件,然后给组件添加单击事件:img.setOnClickListener(new View.OnClickListener(){ @Override
public void onClick(View v){
Toast.makeText(FriendListTwitter. this,"click add friend.",
Toast.LENGTH_SHORT).show();
}
});
但是程序一直出现NullPointerException。
原来以为只要给图片添加clickable和focusable属性就行了,可是还是出现异常时一直出现NullPointerException。后来看到网上一篇文章后才明白,文章的关键内容是:
--------------------------------------->
但是有时候,列表不光会用来做显示用,我们同样可以在在上面添加按钮。添加按钮首先要写一个有按钮的xml文件,然后自然会想到用上面的方法定义一个适配器,然后将数据映射到布局文件上。但是事实并非这样,因为按钮是无法映射的,即使你成功的用布局文件显示出了按钮也无法添加按钮的响应,这时就要研究一下ListView是如何现实的了,而且必须要重写一个类继承BaseAdapter。
Xml代码
xmlns:android="https://www.sodocs.net/doc/a718799118.html,/apk/res/a ndroid" android:layout_width="fill_parent" android:layout_height="46dip" android:descendantFocusability="bloc ksDescendants"> android:layout_wid th="40dip" android:layout_he ight="40dip" android:id="@+id/I temImage"/> android:text="De falut" android:layout_ width="wrap_content" android:layout_ height="wrap_content" android:textSiz e="15dip" android:textColo r="@drawable/white" android:layout_ toRightOf="@id/ItemImage" android:id="@+i d/ItemTitle1" android:layout_g ravity="center_vertical" android:layout_ alignParentTop="true"/> android:text="De falut" android:layout_w idth="wrap_content" android:layout_ height="wrap_content" android:textSize ="15dip" android:textCol or="@drawable/black" android:layout_ toRightOf="@id/ItemImage" android:id="@+id /ItemTitle2" android:layout_ gravity="center_vertical" android:layout_ alignParentBottom="true"/> android:src=" @drawable/btn_check_on" android:layou t_width="wrap_content" android:layout _height="wrap_content" android:click able="true" android:focus able="false" android:layou t_alignParentRight="true" android:layout _centerVertical="true" android:layou t_marginRight="10dip"/>
Java代码
import java.io.BufferedInputStream; import java.io.InputStream;
import https://www.sodocs.net/doc/a718799118.html,.URL;
import https://www.sodocs.net/doc/a718799118.html,.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.os.Bundle;
import android.util.Log;
import https://www.sodocs.net/doc/a718799118.html,youtInflater; import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import
android.widget.AdapterView.OnItemClickListener; public class FriendListTwitter extends Activity{
private List
private ListView mListView;
@Override
public void onCreate(Bundle savedInstanceState){
this.requestWindowFea ture(Window.FEATURE_NO_TITLE);
super.onCreate(savedIn stanceState);
setContentView(https://www.sodocs.net/doc/a718799118.html,yout. apl_mb_c1_friend_001_01);
mListView=(ListView) findViewById(R.id.friends);
mListItem=getData();
MyAdapter adapter=new MyAdapter(this);
mListView.setAdapter(a dapter);
//添加点击
mListView.setOnItemCli ckListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView>arg0,View arg1,int arg2,
long arg3) {
startActivity(new Intent(FriendListTwitter.this,
FriendDetail.class));
}
});
}
private List
ArrayList
for(int i=0;i<10;i++){
HashMap
String url=
"http://10.167.12.184:8080/examples/images/1.png";
Bitmap bitmap=getImageByURL(url);
map.put("avatar",bitmap);//图像资源的ID
map.put("username","@username"+i);
map.put("location","SuZhou JiangSu China");
map.put("add",R.drawable.btn_check_on);
list.add(map);
}
return list;
}
/**
*listview中点击按键弹出对话框
*/
public void showInfo(){
Toast.makeText(this,"add user",
Toast.LENGTH_SHORT).show();
}
public Bitmap getImageByURL(String url){ try{
URL imgURL=new URL(url);
URLConnection conn=imgURL.openConnection();
conn.connect();
InputStream is=conn.getInputStream();
BufferedInputStream bis=new BufferedInputStream(is);
Bitmap bm=BitmapFactory.decodeStream(bis);
bis.close();
is.close();
if(bm==null){
Log.e("MO","httperror");
}
return bm;
}catch(Exception e){
return null;
}
}
public final class ViewHolder{
public ImageView avatar;
public TextView username;
public TextView location;
public ImageView add;
}
public class MyAdapter extends BaseAdapter{ private LayoutInflater mInflater;
public MyAdapter(Context context){
this.mInflater=LayoutInflater.from(context);
}
@Override
public int getCount(){
return mListItem.size();
}
@Override
public Object getItem(int arg0){
return null;
}
@Override
public long getItemId(int arg0){
return0;
}
@Override
public View getView(int position,View convertView, ViewGroup parent){
ViewHolder holder=null;
if(convertView==null){
holder=new ViewHolder();
convertView=mInflater.inflate(
https://www.sodocs.net/doc/a718799118.html,yout.apl_mb_c1_friend_001_03,null);
holder.avatar=(ImageView)convertView
.findViewById(R.id.ItemImage);
https://www.sodocs.net/doc/a718799118.html,ername=(TextView)convertView
.findViewById(R.id.ItemTitle1);
holder.location=(TextView)convertView
.findViewById(R.id.ItemTitle2);
holder.add=(ImageView)
convertView.findViewById(R.id.add);
convertView.setTag(holder);
}else{
holder=(ViewHolder)convertView.getTag();
}
holder.avatar.setImageBitmap((Bitmap) mListItem.get(position).get(
"avatar"));
Log.e("txl01",
mListItem.get(position).get("avatar").toString());
https://www.sodocs.net/doc/a718799118.html,ername.setText((String)
mListItem.get(position).get(
"username"));
holder.location.setText((String)
mListItem.get(position).get(
"location"));
holder.add.setBackgroundResource((Integer) mListItem.get(position)
.get("add"));
holder.add.setOnClickListener(new
View.OnClickListener(){
@Override
public void onClick(View v){
showInfo();
}
});
return convertView;
}
}
}
下面将对上述代码,做详细的解释,listView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到listView的长度(这也是为什么在开始的第一张图特别的标出列表长度),然后根据这个长度,调用getView()逐一绘制每一行。如果你的getCount()返回值是0的话,列表将不显示同样return1,就只显示一行。
系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。当手动完成适配时,必须手动映射数据,这需要重写getView()方法。系统在绘制列表的每一行的时候将调用此方法。getView()有三个参数,position 表示将显示的是第几行,covertView是从布局文件中inflate来的布局。我们用LayoutInflater的方法将定义好的vlist2.xml文件提取成View实例用来显示。然后将xml 文件中的各个组件实例化(简单的findViewById()方法)。这样便可以将数据对应到各个组件上了。但是按钮为了响应点击事件,需要为它添加点击监听器,这样就能捕获点击事
件。至此一个自定义的listView就完成了,现在让我们回过头从新审视这个过程。系统要绘制ListView了,他首先获得要绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。在这个函数里面首先获得一个View(实际上是一个ViewGroup),然后再实例并设置各个组件,显示之。好了,绘制完这一行了。那再绘制下一行,直到绘完为止。在实际的运行过程中会发现listView 的每一行没有焦点了,这是因为Button抢夺了listView的焦点,只要布局文件中将Button设置为没有焦点就OK了。
另外,通过这种方法不可以将ListView和ImageView同时添加了监听,通过网上搜索,原来是没有在xml中添加部分属性,在list的配置xml的根节点添加属性
android:descendantFocusability="blocksDescendants",还有就是在要添加事件的控件上添加
android:focusable="false",上边的代码中我已经添加过了
android 自定义圆角头像以及使用declare-styleable进行配置属性解析由于最新项目中正在检查UI是否与效果图匹配,结果关于联系人模块给的默认图片是四角稍带弧度的圆角,而我们截取的图片是正方形的,现在要给应用统一替换。应用中既用到大圆角头像(即整个头像是圆的)又用到四角稍带弧度的圆角头像,封装一下以便重用。以下直接见代码 [java] view plain copy 在CODE上查看代码片派生到我的代码片 package com.test.demo; import com.test.demo.R; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader.TileMode; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Parcelable; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.widget.ImageView; /** * 圆角imageview */ public class RoundImageView extends ImageView { private static final String TAG = "RoundImageView"; /** * 图片的类型,圆形or圆角 */ private int type; public static final int TYPE_CIRCLE = 0; public static final int TYPE_ROUND = 1; /** * 圆角大小的默认值
建筑-疏散宽度计算
————————————————————————————————作者: ————————————————————————————————日期: ?
来自防火规范-2015版 5.5.18 除本规范另有规定外,公共建筑内疏散门和安全出口的净宽度不应小于0.90m,疏散走道和疏散楼梯的净宽度不应小于1.10m。 高层公共建筑内楼梯间的首层疏散门、首层疏散外门、疏散走道和疏散楼梯的最小净宽度应符合表5.5.18的规定。 表5.5.18 高层公共建筑内楼梯间的首层疏散门、首层疏散外门、疏散走道和疏散 楼梯的最小净宽度(m) 建筑类别楼梯间的首层疏散门、首层疏散外门 走道 疏散楼梯单面布房双面布房 高层医疗建筑 1.30 1.40 1.50 1.30 其他高层公共建筑 1.20 1.30 1.40 1.20 5.5.19 人员密集的公共场所、观众厅的疏散门不应设置门槛,其净宽度不应小于1.40m,且紧靠门口内外各1.40m范围内不应设置踏步。 人员密集的公共场所的室外疏散通道的净宽度不应小于3.00m,并应直接通向宽敞地带。??5.5.20 剧场、电影院、礼堂、体育馆等场所的疏散走道、疏散楼梯、疏散门、安全出口的各自总净宽度,应符合下列规定:?1观众厅内疏散走道的净宽度应按每100 人不小于0.60m计算,且不应小于1.00m;边走道的净宽度不宜小于0.80m。 布置疏散走道时,横走道之间的座位排数不宜超过20排;纵走道之间的座位数:剧场、电影院、礼堂等,每排不宜超过22个;体育馆,每排不宜超过26个;前后排座椅的排距不小于0.90m时,可增加1.0倍,但不得超过50个;仅一侧有纵走道时,座位数应减少一半。?2剧场、电影院、礼堂等场所供观众疏散的所有内门、外门、楼梯和走道的各自总净宽度,应根据疏散人数按每100人的最小疏散净宽度不小于表5.5.20-1的规定计算确定。 表5.5.20-1 剧场、电影院、礼堂等场所每100人所需最小疏散净宽度(m/百人) 观众厅座位数(座)≤2500≤1200 耐火等级一、二级三级 疏散部位门和走道平坡地面?阶梯地面 0.65 0.75 0.85?1.00 楼梯0.75 1.00 3 体育馆供观众疏散的所有内门、外门、楼梯和走道的各自总净宽度,应根据疏散人数按每100人的最小疏散净宽度不小于表5.5.20-2的规定计算确定。 表5.5.20-2 体育馆每100人所需最小疏散净宽度(m/百人) 观众厅座位数范围(座)3000~50005001~10000 10001~20000疏散部位门和走道平坡地面0.43 0.37 0.32
HTML字体属性 一、文字样式设置的基本标签— 设置字体样式的基本标签是,被其包含的文本为样式作用区。在初学者的HTML代码编写中,容易被多重嵌套,如文本。还有一种情况是标签嵌套错位,如文本 。为了规范代码的编写,避免不必要的错误,读者在初学时一定要谨慎。 二、设置文字的颜色 color是标签的属性之一,用于设置文字颜色。编写代码如代码2.1所示。 代码2.1 字体颜色的设置:font_color.htm
深红色文字:HTML学习的本质就是该是什么就用什么
浅绿色文字:HTML学习的本质就是该是什么就用什么
深绿色文字:HTML学习的本质就是该是什么就用什么
浅蓝色文字:HTML学习的本质就是该是什么就用什么
深蓝色文字:HTML学习的本质就是该是什么就用什么
浅黄色文字:HTML学习的本质就是该是什么就用什么
深黄色文字:HTML学习的本质就是该是什么就用什么
浅青色文字:HTML学习的本质就是该是什么就用什么
深青色文字:HTML学习的本质就是该是什么就用什么
浅紫色文字:HTML学习的本质就是该是什么就用什么
深紫色文字:HTML学习的本质就是该是什么就用什么
浏览效果如图2.2所示。
Android平台我的日记 设计文档 项目名称:mydiray 项目结构示意: 阶段任务名称(一)布局的设计 开始时间: 结束时间: 设计者: 梁凌旭 一、本次任务完成的功能 1、各控件的显示 二、最终功能及效果 三、涉及知识点介绍 四、代码设计 activity_main.xml: android:layout_centerHorizontal="true" android:layout_marginTop="88dp" android:text="@string/wo" android:textSize="35sp"/> html字体大小、颜色、粗体、下划线代码(局部) 字体大小这里是设置为12像素也可以设置其他大小注意单位可以使像素还可以是其他的比如厘米英寸都可以 字体颜色这里设置为红色也可以使蓝色blue 绿色green 或更精确丰富的16进制值如#873422 字体加粗(也可以用 ,不推荐) 下划线 ----------------------------------------------------- android 自定义控件的过程 invalidate()会导致computeScroll()以及onDraw()方法的执行computeScroll()方法是在屏幕流动的时候不停的去调用,scrollTo(int x,int y)则是滚动到相应的位置; scrollBy(int x, int y)则是移动一些距离,X为正是向左移动,为负时向右移动,Y与X的意义一个,只是是上下移动而已View对象显示在屏幕上,有几个重要步骤: 1.构造方法创建对象 2.测量View的大小onMeasure(int,int); 3.确定View的位置,View自身有一些权,决定权在父View手中. onLayout();基本上不常用,在继承View的时候基本上用不着,但在继承ViewGroup的时候的就要用到了,因为要对View进行布局,确定View的位置,确定的时候使用 指定子View的位置,左,上,右,下,是指在ViewGroup坐标系中的位置https://www.sodocs.net/doc/a718799118.html,yout(int xtop,int ytop, int xbottom, int ybottom); 4.绘制View的内容onDraw(Canvas) 实现过程: 1、构造方法: /** * 在布局文件中声名的view,创建的时候由系统调用 * * @param context * 上下文对象 * @param attrs * 属性集 */ public MyToggleButton(Context context, AttributeSet attrs) { super(context, attrs); initView(); } 2、测量View的大小: /** * 测量尺寸时的回调方法 */ Android进阶——自定义View之自己绘 制彩虹圆环调色板 引言 前面几篇文章都是关于通过继承系统View和组合现有View来实现自定义View的,刚好由于项目需要实现一个滑动切换LED彩灯颜色的功能,所以需要一个类似调色板的功能,随着手在调色板有效区域滑动,LED彩灯随即显示相应的颜色,也可以通过左右的按钮,按顺序切换显示一组颜色,同时都随着亮度的改变LED彩灯的亮度随即变化,这篇基本上把继承View重绘实现自定义控件的大部分知识总结了下(当然还有蛮多没有涉及到,比如说自适应布局等),源码在Github上 一、继承View绘制自定义控件的通用步骤 自定义属性和继承View重写onDraw方法 实现构造方法,其中public RainbowPalette(Context context, AttributeSet attrs) 必须实现,否则无法通过xml引用,public RainbowPalette(Context context) ,public RainbowPalette(Context context, AttributeSet attrs, int defStyleAttr)可选,通常在构造方法中完成属性和其他成员变量的初始化 重写onMeasure方法,否则在xml中有些设置布局参数无效 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(width, height);//重新设置View的位置,若不重写的话,则不会布局,即使设置centerInParent为true也无效 //setMeasuredDimension(width,height); } 手动调用invalidate或者postInvalidateon方法完成界面刷新 重写onTouchEvent方法实现基本的交互 定义回调接口供外部调用 二、彩虹圆环调色板设计思想 商业等建筑疏散宽度的计 算 Prepared on 22 November 2020 商业等建筑疏散宽度的计算 1 GB50016-20145.5.21(人员密度是楼层,百人按总层数) 除剧场、电影院、礼堂、体育馆外的其他公共建筑,其房间疏散门、安全出口、疏散走道和疏散楼梯的各自总净宽度,应符合下列规定: 1每层的房间疏散门、安全出口、疏散走道和疏散楼梯的各自总净宽度,应根据疏散人数按每100人的最小疏散净宽度不小于表5.5.21-1的规定计算确定。当每层疏散人数不等时,疏散楼梯的总净宽度可分层计算,地上建筑内下层楼梯的总净宽度应按该层及以上疏散人数最多一层的人数计算;地下建筑 内上层楼梯的总净宽度应按该层及以下疏散人数最多一层的人数计算。 表5.5.21-1每层的房间疏散门、安全出口、疏散走道和疏散楼梯的每100人最小疏散净宽度(m/百人) 2地下或半地下人员密集的厅、室和歌舞娱乐放映游艺场所,其房间疏散门、安全出口、疏散走道和疏散楼梯的各自总净宽度,应根据疏散人数按每100人不小于1.00m计算确定。 3首层外门的总净宽度应按该建筑疏散人数最多一层的人数计算确定,不供其他楼层人员疏散的外门,可按本层的疏散人数计算确定。 4歌舞娱乐放映游艺场所中录像厅的疏散人数,应根据厅、室的建筑面积按不小于1.0人/m2计算;其他歌舞娱乐放映游艺场所的疏散人数,应根据厅、室的建筑面积按不小于0.5人/m2计算。 5有固定座位的场所,其疏散人数可按实际座位数的1.1倍计算。 6展览厅的疏散人数应根据展览厅的建筑面积和人员密度计算,展览厅内的人员密度不宜小于0.75人/m2。 html字体设置 html字体设置大全 (1) 比喻代码如下: 自定义Dialog; dialog = new Dialog(this); dialog.setContentView(https://www.sodocs.net/doc/a718799118.html,yout.by_baseinfo); dialog.setTitle("dialog的title"); /* * 获取Dialog的窗口对象及参数对象以修改对话框的布局设置, 可以直接调用this.getWindow(),表示获得这个Activity的Window * 对象,这样这可以以同样的方式改变这个Activity的属性. * Activity不可见时getWindow()返回值为null; */ Window dialogWindow = dialog.getWindow(); // 对话框的布局设置参数; https://www.sodocs.net/doc/a718799118.html,youtParams layoutParams = dialogWindow.getAttributes(); // 设置Window中的内容为左上对齐; dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP); /* * lp.x与lp.y表示相对于原始位置的偏移. * 当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略. * 当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略. * 当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略. * 当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略. * 当参数值包含Gravity.CENTER_HORIZONTAL时 * ,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动. * 当参数值包含Gravity.CENTER_VERTICAL时 * ,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动. * gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL | * Gravity.CENTER_VERTICAL. * * 本来setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应出现在程序的左上角,但在 * 我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了, Gravity.LEFT, Gravity.TOP, * Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离 */ // 相对于屏幕原位置(加上标题栏) 的偏移量; lp.x = 100; // 新位置X坐标 2疏散宽度的计算 目前,对大型商店建筑疏散宽度的计算依据是《建规》和《商店建筑设计规范》(JGJ48-88)(以下简称《商规》)以及人《人民防空工程设计防火规范》(GB50098-98)。《建规》条文如下: 5.3.17.5商店的疏散人数应按每层营业厅建筑面积乘以面积折算值和疏散人数换算系数计算。地上商店的面积折算值宜为50%~70%,地下商店的面积折算值不应小于70%。疏散人数的换算系数可按表2确定。 表1和表2与《商规》第4.2.5条和《人民防空工程设计防火规范》第5.1.5条及第5.1.8条已经统一。 依据《建筑》5.3.17.5条,我们可以得出如下计算公式: B(m)=S'(m2)×K2×b(m/100人)×a(人/m2) 式中:B为商店营业厅疏散总宽度(m) S'为每层营业厅的建筑面积(m2) K2为面积折算值(常量)0.7 b为疏散宽度百人指标(m/100人)地下与地平高差10m以内不小于0.75(m/100人),高差10m以上,不小于1(m/100人)。 a为疏散人数换算系数(人/m2)地下二层0.80(人/m2),地下一层0.85(人/m2),地上一二层0.80(人/m2),地上三层0.77(人/m2),地上四层0.60(人/m2)。 很显然,式中K、b、a三个数可以从条文中查到,但Sˊ怎样确定。 3营业厅建筑面积的确定 依据《建规》5.3.17.5条的条文说明,“营业厅的建筑面积”包括营业厅内展示货架、柜台、走道等顾客参与购物的场所,以及营业厅内的卫生间、楼梯间、自动扶梯等的建筑面积,对于采用防火分隔措施分隔开且疏散时无需进入营业厅内的仓储、设备房、工具间、办公室等可不计入该建筑面积内。 在建筑设计中,往往在设计阶段还没有商店的平面布置,因此不能准确的得到营业厅的建筑面积。但可以参照《商规》进行估算。 《商规》条文: 第3.1.1条商店建筑按使用功能分为营业、仓储和辅助三部分。建筑内外应组织好交通,人流、货流应避免交叉,并应有防火、安全分区。 第3.1.2条商店建筑的营业、仓储和辅助三部分建筑面积分配比例可参照表3的规定。 第3.4.1条辅助部分应根据商店规模大小、经营需要而设置。包括外向橱窗、办公业务和职工福利用房,以及各种建筑设备用房和车库等;该部分所占商店总建筑的比例数可按第3.1.2条的规定。 第3.4.2条商店的办公业务和职工福利用房面积可按每个售货岗位配备3~3.5m2计。 第3.2.2条普通营业厅内各售区面积可按不同商品种类和销售繁忙程度而定。营业厅面积指标可按平均每个售货岗位15m2计(含顾客占用部分);也可按每个顾客1.35m2计。 根据以上各条文,我们可以得出营业厅建筑面积=营业面积+(辅助面积-办公部分面积)。而办公面积=3~3.5/15×营业面积=1/5营业面积(取小值)。 因此我们可以得到营业厅建筑面积,营业厅建筑面积可按表4确定。 如何用css设置网页字体 2009-10-20 05:11 阅读22 评论0 字号:大中小 在网页界面的设计过程中,许多人考虑最多的是用什么图形与色彩来装饰网页,或是在网页上加上什么动画特效;而对于网页的字体却不太重视。结果往往是有些网站的字体不是太小就是太大,严重影响阅览;而有的网站整页用的都是标准字体,毫无个性而言。其实,字体作为网站内容的载体,有其独特的重要性, 是不应该忽视的。 运用Html,我们可以对字体的大小及字形进行简单的修改,但要进行统一地控制、创建特殊效果,就必须要用到css.它能让您更有效地控制网页外观,并可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。考虑到用frontpage制作网页的人较多,同时它对其他网页编辑器的使用者也有一定的借鉴 作用, 因此,我就讲解一下如何在frontpage2000中运用css设置网页字体。 我们可以用css设置出无数种网页字体,但万变不离其宗,任何的变化都要遵循css的基本语法。因此我们先来了解一下css的基本语法,它是这样子的:HTML 标志{ 标志属性:属性值;标志属性:属性值;标志属性:属性值;…… }。设置字体时,只要正确的更改字体属性的属性值,就可以达到目的。字体属性共分五种:字族(font-family)、字体风格(font-style)、字体变形(font-variant)、字体加粗(f ont-weight)、字体大小(font-size),此外font属性是一个总体属性,可一一指定以上各种属性和属性值。 它们的功能与属性值如下: 1、字族(font-family) 功能:通过font-family指定字体类型用于改变HTML标志或元素的字体,你可设置一个可用字体清单。 浏览器由前向后选用字体。 其语法为:h1 {font-family: 字体类型,字体类型,字体类型} 2、字体风格(font-style) 功能:使文本显示为扁斜体或斜体等?属性值:normal-普通、italic-斜体、oblique-偏斜体 语法为:h1{font-style:属性值} 3、字体变形(font-variant) 功能:使文本中的小写字母显示为字体较小的大写字母,常用于设计特殊的标题。 属性值:normal(普通)和small-caps(小型大写字母) 语法为:h1{font-variant:属性值} 4、字体加粗(font-weight) 功能:用于设置字体笔划的粗细。 属性值:正常度- normal 今天和大家分享下组合控件的使用。很多时候android自定义控件并不能满足需求,如何做呢?很多方法,可以自己绘制一个,可以通过继承基础控件来重写某些环节,当然也可以将控件组合成一个新控件,这也是最方便的一个方法。今天就来介绍下如何使用组合控件,将通过两个实例来介绍。 第一个实现一个带图片和文字的按钮,如图所示: 整个过程可以分四步走。第一步,定义一个layout,实现按钮内部的布局。代码如下: 1. 2. 公共建筑类型较多,且在建筑设计中有些建筑类别的疏散宽度和疏散人数的计算不能够在规上找到明确的依据,或无法明确套用哪个规,现根据个人分析及参阅相关文献总结几种常见建筑类型的疏散宽度和疏散人数的计算。(将根据个人经历,添加相关建筑类型的计算方法以供参考及讨论) 一、商店 对大型商店建筑疏散宽度的计算依据: 《建规》、《商店建筑设计规》(JGJ48-88)、《人民防空工程设计防火规》(GB 50098-98)以及地方文件要求。 《建规》条文如下:(具体条文可参见下一节“餐饮”) 5.3.17.5商店的疏散人数应按每层营业厅建筑面积乘以面积折算值和疏散人数换算系数计算。地上商店的面积折算值宜为50%~70%,地下商店的面积折算值不应小于70%。疏散人数的换算系数可按表5.3.17-2确定; 注:营业厅建筑面积的确定: 依据《建规》5.3.17.5条的条文说明,“营业厅的建筑面积”包括营业厅展示货架、柜台、走道等顾客参与购物的场所,以及营业厅的卫生间、楼梯间、自动扶梯等的建筑面积,对于采用防火分隔措施分隔开且疏散时无需进入营业厅的仓储、设备房、工具间、办公室等可不计入该建筑面积。 在建筑设计中,往往在设计阶段还没有商店的平面布置,因此不能准确的得到营业厅的建筑面积。可参照《商规》进行估算。 《商规》 第3.1.1条:商店建筑按使用功能分为营业、仓储和辅助三部分。建筑外应组织好交通,人流、货流应避免交叉,并应有防火、安全分区。 第3.1.2条:商店建筑的营业、仓储和辅助三部分建筑面积分配比例可参照表3.1.2的规定。 第3.4.1条:辅助部分应根据商店规模大小、经营需要而设置。包括外向橱窗、办公业务和职工福利用房,以及各种建筑设备用房和车库等;该部分所占商店总建筑的比例数可按第3 1-2条的规定。 第3.4.2条:商店的办公业务和职工福利用房面积可按每个售货岗位配备3-3.5m2计。 第3.2.2条:普通营业厅各售区面积可按不同商品种类和销售繁忙程度而定。营业厅面积指标可按平均每个售货岗位15m2计(含顾客占用部分);也可按每个顾客1.35m2计。 android自定义View之Android手机通讯录制作 我们的手机通讯录一般都有这样的效果,如下图: OK,这种效果大家都见得多了,基本上所有的Android手机通讯录都有这样的效果。那我们今天就来看看这个效果该怎么实现。 一.概述 1.页面功能分析 整体上来说,左边是一个ListView,右边是一个自定义View,但是左边的ListView 和我们平常使用的ListView还有一点点不同,就是在ListView中我对所有的联系人进行了分组,那么这种效果的实现最常见的就是两种思路: 1.使用ExpandableListView来实现这种分组效果 2.使用普通ListView,在构造Adapter时实现SectionIndexer接口,然后在Adapter 中做相应的处理 这两种方式都不难,都属于普通控件的使用,那么这里我们使用第二种方式来实现,第一种方式的实现方法大家可以自行研究,如果你还不熟悉ExpandableListView的使用,可以参考我的另外两篇博客: 1.使用ExpandableListView实现一个时光轴 2.android开发之ExpandableListView的使用,实现类似QQ好友列表 OK,这是我们左边ListView的实现思路,右边这个东东就是我们今天的主角,这里我通过自定义一个View来实现,View中的A、B......#这些字符我都通过canvas的drawText 方法绘制上去。然后重写onTouchEvent方法来实现事件监听。 2.要实现的效果 要实现的效果如上图所示,但是大家看图片有些地方可能还不太清楚,所以这里我再强调一下: 1.左边的ListView对数据进行分组显示 2.当左边ListView滑动的时候,右边滑动控件中的文字颜色能够跟随左边ListView 的滑动自动变化 3.当手指在右边的滑动控件上滑动时,手指滑动到的地方的文字颜色应当发生变化,同时在整个页面的正中央有一个TextView显示手指目前按下的文字 随着我国经济的发展, 商店建筑的建设不但在数量上逐年递增, 而且在规模上也呈现出了 越来越大的发展趋势。然而在商店建筑设计中有关消防安全疏散的问题, 常常给建筑设计者及消防审核人员带来困扰。多年的工作实践, 使我们感到以往的计算方法以不符合目前商店建筑的实际, 笔者推荐一种新的计算方法,特作如下分析与探讨。 1 以往计算方法所存在的问题 根据《商店建筑设计规范》JGJ48- 88 (以下简称“商规”) 及《建筑设计防火规范》G BJ 16- 87 (以下简称“建规”) 的规定, 多层(建筑高度24 m 以下) 商店建筑中营业厅的疏散宽度计算, 首先根据“商规”第4. 2. 5条中的换算系数来确定人数, 再根据“建规”第5. 3. 12条中的疏散宽度百人指标确定疏散宽度。简化成公式(1) : D = S ×a×b/100 (1) 式中:D ——最大一层营业厅的疏散宽度,m; S ——最大一层营业厅面积,m; a ——换算系数, 根据“商规”第4. 2. 5 条确定,即第一、二层a= 0. 85, 第三层a = 0. 77,第四层及以上各层a= 0. 6; b ——疏散宽度百人指标, 根据“建规”第5. 3.12 条, 耐火等级为一、二级时, 第 一、二层b= 0. 65 m/百人。 当第二层营业厅面积为1 000 m2 时,D = 1 000×0. 85×0. 65/100= 5. 225 m。需要设三部开间尺寸为4. 2 m 宽的楼梯, 每部楼梯的面积约为36 m2, 三部共108 m2, 相当于营业厅面积的10. 8 %。 根据公式(1) , 1 000 m2 的营业厅, 容纳人数为850 人, 平均每人占1. 176 m2, 除去柜台所占面积约300 m2 左右, 即700 m2 的顾客活动空间容纳人数为850 人, 平均每人仅占0. 82m2。这个密度对20 世纪80年代的商场是合适的。因为当时商场的数量少、购物的人相对集中。目前执行的“商规”就是编制于20 世纪80 年代,“商规”中的各项规定符合当时的国情, 但现在的商场无论是规模还是数量都数倍于那个时代, 购物人群已分散于 各商场中, 商场内人员的密度已大大降低。其次, 20 世纪80 年代的商场多为营业、仓储、辅助分设, 而现在仓储式的商场越来越多, 柜台的尺寸也在加大, 柜台所占用的空间及面 积也越多, 同时仓储式的商场中大多数的顾客为推车购物, 所需用的空间的面积也加大。可见包括柜台在内每人1. 176m2 的密度显然不符合今天商场的功能需求, 因此以往的计算 方法应作调整。再次, 目前商场越建越大, 仍按以往的计算方法计算疏散宽度, 带来的问题是楼梯数量过多, 宽度过宽, 楼梯间占用的面积过大, 占营业面积的10 %以上, 显然也不 HTML语言代码 A 语言结构 1. 用于定义HTML文件的类型。 如: 表明DTD(Document Type Definition)由W3C制订,HTML版本为4.0,使用的语言为英语。2.… 定义HTML文件的开始和结束。 3.html字体大小
html的文字样式
,再写一个副标题----写给入门同学
。用上面的写法话就是 html的文字样式
----写给入门同学
,【是换行的意思】 这段代码就是让主标题剧中显示二副标题h2 在下一行的靠网页右边显示 ------用css则不这样写了, 直接内容html的文字样式
----写给入门同学
然后写样式h1{text-align="center";},h2{text-align="right";}当然这段控制样式的css代码要写在样式标签里这里就不多说了android 自定义控件的过程
Android进阶——自定义View之自己绘制彩虹圆环调色板
商业等建筑疏散宽度的计算
html中字体设置详细版
android自定义布局或View
商业建筑疏散宽度计算
如何用css设置网页字体
Android自定义控件
疏散宽度计算公式
android自定义View之Android手机通讯录制作
疏散宽度的计算
HTML语言结构(详细免费版)