当前位置:  c/c++ iis7站长之家
本页文章导读:
    ▪取得SDCard的路径        获得SDCard的路径   在android中获得sd卡的路径太常用了,那么如何获得sd卡的路径呢?   public String getSDPath(){          File sdDir = null;          boolean sdCardExist = Environment.getExternalStorageState().eq.........
    ▪ 新近完成的项目开发,准备下一个编码        最近完成的项目开发,准备下一个编码。 最近开发完手机办公 for iPhone版,已上传到 App Store,Waiting For Review     What's New in this Version    全新的界面,全新的办公模式,支持在线办文,待阅.........
    ▪ andoid学习札记       andoid学习笔记 安卓主流分辨率: layout-320X240, 480X320, 800X480, 854X480, 960X640,  1024X600 . 为简单起见,Android将屏幕尺寸(屏幕从左上角到右下角的对角线长度)分为四个级别:小,正常,大和超.........

[1]取得SDCard的路径
    来源: 互联网  发布时间: 2014-02-18
获得SDCard的路径

 

在android中获得sd卡的路径太常用了,那么如何获得sd卡的路径呢?

 

public String getSDPath(){ 

        File sdDir = null; 

        boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);//判断sd卡是否存在 

        if(sdCardExist) {                               

        sdDir = Environment.getExternalStorageDirectory();//获取跟目录 

        }   

        return sdDir.toString(); 


    
[2] 新近完成的项目开发,准备下一个编码
    来源: 互联网  发布时间: 2014-02-18
最近完成的项目开发,准备下一个编码。

最近开发完手机办公 for iPhone版,已上传到 App Store,Waiting For Review

 

 

What's New in this Version 

 

全新的界面,全新的办公模式,支持在线办文,待阅公文查阅,传阅回查,收发文库,即时通讯交流,我的会议通知,督查待办,通知公告,动态信息,领导活动,领导讲话,信-

息刊物,规章制度,OA通讯录,内部留言交流,内部OA手机短信发送等一系列办公模块。

 

 

登录后主界面

 

 

公文处理界面

 

处理表单

 

 

通知公告查看

 

 

在线即时交流

 

 

 

 

=============================================================

完美收宫

 

 

下一个编码准备,数据、资源、共享

 

功能:积分榜、盘路榜、射手榜、比分回查。

 

 

1 楼 fuss228 2011-11-01  

楼主的即时通讯是如何实现的呢?
2 楼 gekie 2011-11-01  
fuss228 写道

楼主的即时通讯是如何实现的呢?


即时通讯是用json格式传输,用http协议交互。

    
[3] andoid学习札记
    来源: 互联网  发布时间: 2014-02-18
andoid学习笔记
安卓主流分辨率:

layout-320X240, 480X320, 800X480, 854X480, 960X640,  1024X600 .
为简单起见,Android将屏幕尺寸(屏幕从左上角到右下角的对角线长度)分为四个级别:小,正常,大和超大, 将屏幕密度分成四个基本密度:lDPI(低),mDPI(中等),hDPI(高)以及 xhDPI(特高). 
基线”布局设置在320×480(HVGA)上, 一半大小的VGA, 是目前智能手机的标准显示大小。iPhone 3GS,3G和2G都使用这一相同的配置。

android:padding:

padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。margin则是站在自己的角度描述问题,规定自己和其他(上下左右)的view之间的距离.例如设置EditText中的文字距离边框的填充,就可以使用padding,设置这个EditText在父容器中的位置可以用margin。

android:singleLine="true" :

设置单行显示。经常与android:maxWidth配合使用,设置文本的最大宽度,超出部分以...的形式显示,如:
android:text="test_ singleLine "
android:singleLine="true"
android:maxWidth="60.0dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
如果不设置singleLine或者设置为false,文本将自动换行。

android:hint ="@string/..." :

添加灰色提示,有输入时自动消除. 例如:登录EditText框中灰色的"请输入账号..",获得焦点即清空。

android:gravity

意思是这个控件自己的“重力”,在通俗点就是控件上面的东西的位置(图片,文本等)
例如:控件内文字置于左下: android:gravity=" left| bottom "

android:layout_gravity:
类似android:gravity,但指的是该控件相对于父view的位置。

RelativeLayout相对布局中常用属性:
 ①指定控件在容器中的相对位置,包括:
android:layout_alignParentTop,
android:layout_alignParentBottom,
android:layout_alignParentLeft,
android:layout_alignParentRight,
android:layout_centerHorizontal,
android:layout_centerVertical,
android:layout_centerInParent,他们的值是false|true。配合使用android:layout_marginBottom、Top、Left、Right 可以精确的将控件拜访在靠近容器某个边的位置。eg:
<ProgressBar
	android:id="@+id/loading"
	android:visibility="invisible"
	android:layout_width="50.0dip" 
	android:layout_height="50.0dip"
	android:layout_alignParentBottom="true"
	android:layout_marginBottom="125.0dip" 
	android:layout_centerHorizontal="true" 
	
	/> 
 ProcessBar将水平居中显示在距离容器底部125dip的位置,如果不加layout_alignParentBottom="true",android:layout_marginBottom不起作用。

 ②相对其他控件的位置:
android:layout_above, 
android:layout_below,       //不定在正上或正下(同一列)
android:layout_toLeftOf,   
  android:layout_toRightOf  //不一定在正左或正右(同一行)

 ③和其他控件的对齐方式:
android:layout_alignTop,
android:layout_alignBottom,
android:layout_alignLeft,
android:layout_alignRigh,
android:layout_alignBaseline //使在同一行 ,一般用于label的对齐,eg:让A居中显示,使用该属性将B对齐在A上,如果还有其他控件需要指定相对位置,最好继续以A为参照物,以B为参照物会出问题。

eg:
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/view"
  android:background="@drawable/background_login"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  
<TextView 
	android:id="@+id/text1"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:textColor="#000000"
	android:text="TextView1"
	/>
	<TextView 
	android:id="@+id/text2"
	android:layout_below="@id/text1"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:textColor="#000000"
	android:text="TextView2"
	/>
<EditText
	android:id="@+id/edit1"
	android:layout_toRightOf="@id/text2"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_alignTop="@id/text2"
	/>
 </RelativeLayout>
 效果图:
将EditText中android:layout_alignTop="@id/text2"改为android:layout_alignBottom="@id/text2",为TextView2
和EditText底端对齐,
效果变为:

alignWithParentIfMissing = "true|false"

针对RelativeLayout有一点需要注意,因为它内部是通过多个View之间的关系而确定的框架,那么当其中某一个View因为某些需要调用GONE 来完全隐藏掉后,会影响与其相关联的Views。Android为我们提供了一个属性 alignWithParentIfMissing  用于解决类似问题,当某一个View无法找到与其相关联 的Views后将依据alignWithParentIfMissing 的设定判断是否与父级View对齐。

android:visibility:

此属性意思是此视图是否显示,例如RelativeLayout中 android:visibility="gone"。
其有三个属性:visible显示;invisible显示黑背景条;gone不显示在类中,可以设置其显示与否, setVisibility(View.GONE);     不显示
setVisibility(View.VISIBLE);   显示

android:ellipsize:   内容过长加省略号的位置

android:ellipsize = "end"    省略号在结尾
android:ellipsize = "start"   省略号在开头
android:ellipsize = "middle"     省略号在中间
android:ellipsize = "marquee"  跑马灯
最好加一个约束android:singleline = "true"
也可以用代码语句 :
tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
最好再加一个约束tv.setSingleLine(true);
不仅对于textview有此属性,对于editext也有,不过它不支持marquee


android:inAnimation和android:outAnimation:分别指定View进出使用的动画效果。
  eg:
        android:inAnimation="@android:anim/slide_in_left"
        android:outAnimation="@android:anim/slide_out_right" //从左边进右边飞出的效果

※ 始终使用sp作为文字大小的单位,将dp或dip作为其他元素的单位.

xml中的<![CDATA[ 与 ]]> :

在xml中,一些特殊的字符,是不能被直接解析的, 需要放入到CDATA中让XML解析器忽略它! 这里的忽略并不是说throws掉, 而仅仅是作为普通文本进行处理。这些带有CDATA的XML最好采用android自带的pullxmlParser解析,用sax容易产生错误。

资源访问:

对于sdcard中的本地网页和图片等资源,一般url地址以 "file:///mnt/sdcard/"开头;
对于android项目中assets目录下的本地网页和图片等资源,url以"file:///android_asset/ "开头;

错误:java.lang.IllegalStateException: ScrollView can host only one direct child

ScrollView内部只能有一个子元素,即不能并列两个子元素,所以需要把所有的子元素放到一个LinearLayout内部或     RelativeLayout等其他布局方式。

      
listview设计UI的相关属性:
     
stackFromBottom属性:设置该属性之后你做好的列表就会显示你列表的最下面,值为true和false                    
       android:stackFromBottom="true" ;           
   
transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新

        的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件

      (支持ScrollBar)自动滑动到最底部。android:transcriptMode="alwaysScroll"  ;  

cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要

准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,

发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。如果

你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,

那也只要将android:cacheColorHint指定为透明(#00000000)就可以了

divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线

android:divider="@drawable/list_driver"  其中  @drawable/list_driver 是一个图片资源,如果不想

        显示分割线则只要设置为android:divider="@drawable/@null" 就可以了

       fadingEdge属性,上边和下边有黑色的阴影,android:fadingEdge="none" 设置后没有阴影了。

scrollbars属性,作用是隐藏listView的滚动条,android:scrollbars="none"与

setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏

fadeScrollbars属性,android:fadeScrollbars="true"  配置ListView布局的时候,设置这个属性为true就可以

实现滚动条的自动隐藏和显示。

android:listSelector属性,默认是橘黄色的 (不少手机厂商都把这个默认修改了,g3好像默认是绿色..)
作用是展示一个写好的selecter.xml,效果与在list的每个子项布局文件中指定根view的background为selecter一样。

使用代码显示一个圆形等待进度条:

processDialog = new ProgressDialog(Context context);
processDialog.setMessage(String message);
processDialog.setIndeterminate(false);
processDialog.setCancelable(true);
processDialog.setOnCancelListener(mOnCancelListener);
processDialog.show();
ProgressBar的setIndeterminate(false);
设为false,表示滚动条的当前值自动在最小到最大值之间来回移动,形成这样一个动画效果,这个只是告诉别人"我正在工作",但不能提示工作进度到哪个阶段。主要是在进行一些无法确定操作时间的任务时作为提示。设为true,就是根据你的进度可以设置现在的进度值。

简单的连接等待Dialog:
myDialog = ProgressDialog.show(LoginAct.this, "正在连接服务器..","连接中,请稍后..", true, true);

ActivityManager.restartPackage:退出系统

    用于Android2.2以下版本:

ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE); 
am.restartPackage(getPackageName());
   这个方法,系统会将该包下的所有 进程、服务,全部杀掉,要注意清单文件:

   <uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>
  

用于Android2.2 版本:
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
                             startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
System.exit(0);//退出程序  
   

设置Activity的横竖屏:

 <activity android:name=".EX01"
 android:label="@string/app_name" 
 android:screenOrientation="portrait">// 竖屏 , 值为 landscape 时为横屏
…………
 </activity> 

事件监听:
有些事件处理方法没有返回值,但有些事件处理方法是必须带返回值,例如
onLongClick()
它返回的布尔值表明你已经完成了这个事件的处理,还是应该把它继续传下去。返回true表明已经处理完
成并且停止了传递,如果返回为false表明事件还没有完成,或者它还需要继续被传递给其他的监听器
example:
private int m_id;
		private int m_position;
		mlistView.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> arg0, View v,
					int position, long id) {
				m_id = id;
				m_position = position;
				return false; //交给onContextItemSelected继续做
			}
			
		});
		
		@Override
		public boolean onContextItemSelected(MenuItem item) {
			if(item.getItemId() == 0){
				//打开
				Intent intent = new Intent(Myself.this, SubList.class);
				intent.putExtra("mid", m_id);
				String m_name = myObjectList.get(m_position-1).getName(); 
				intent.putExtra("mname", m_name);
				startActivity(intent);
				
			}else if(item.getItemId() == 1){
				//删除
				
			}
			return super.onContextItemSelected(item);
		}
		
		@Override
		public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
			 super.onCreateContextMenu(menu, v, menuInfo);
			 
			 //menu.setHeaderIcon(R.drawable.icon);
			 // 创建上下文菜单
			 menu.setHeaderTitle("请选择操作");
			 //menu.clearHeader(); //清除表头
			 // 第一个参数:组ID
			 // 第二个参数:菜单项ID
			 // 第三个参数:顺序号
			 // 第四个参数:菜单项上显示的内容
			 menu.add(1,0,0,"打开");
			 menu.add(1,1,1,"删除");
		}
 代码中如果setOnItemLongClickListener返回了true,onCreateContextMenu方法就不会执行,长按listview的某个item也就不会构建并弹出上下文菜单。

在Android 框架中会调用event handlers先处理事件,然后会适当的传递给二级默认的预定义handlers中;因此如果返回true,将会停止这个事件的传递,View中默认事件处理方法的回调也会被阻止。
因此,当你返回true肯定表明你是要终止这个事件的延续。

org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: no element found
原因是
is = method.getResponseBodyAsStream();
//String str = method.getResponseBodyAsString();
本来想打印str观察返回的xml是否正确。就因为加了这句,导致了错误,网上的解释:流不能被重复读取。

<meta name="format-detection" content="telephone=no">
禁掉webview的自动识别电话号码的功能。

webview显示一个html文件的时候,右边总是有一个白色的边框,如何去掉:
在xml中加入android:scrollbarSize="0dip"
或者 webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY)

如何在wap网页或webview加载的html页面中让不同分辨率手机自适应页面宽度,防止出现横向滚动:

<meta name=”viewport” content=”width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0″> 
 
width表示网页的布局layout宽度。initial-scale表示初始时的缩放比例,minimum-scale和maximum-scale分别表示最小和最大缩放比例。
width只是设置layout宽度,还要乘上缩放比例,才能得到最终的显示宽度。那么对于480像素的屏幕来说,若device-width“被320”,那initial-scale应该是1.5才能占满整个屏幕宽度。

<meta name="MobileOptimized" content="240" />
这个可以解决flash不能全屏的问题,自己没遇到过

BitmapDrawable bitmapDrawable = new BitmapDrawable(new URL(/blog_article/url/index.html).openStream()); 
从网络上直接获取图片加载到本地内存中,需要新开线程。

android:scaleType="centerInside":
在使用相对布局显示图片的时候,经常需要在ImageView中加载网络图片,宽高属性都是wrap_content,
图片的大小不一定,会造成ImageView的宽或高被撑开,除了显示的图片外,还显出很大一块空白在里头,是指定ImageView的属性:
android:scaleType="centerInside"
android:adjustViewBounds="true"
注意:控制的图片为资源而不是背景,即android:src。
关于ImageView的更多属性,参考:http://www.cnblogs.com/over140/archive/2011/06/08/2075054.html

BitmapFactory.Options
如果该值设为true,将不返回实际的bitmap,不给其分配内存空间,只返回一些解码边界信息(即图片大小信息)。
options.outHeight 获取图片原始高度
options.outWidth 获取图片的原始宽度
eg:
FrameLayout fr=(FrameLayout)findViewById(R.id.FrameLayout01);
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/test.jpg", options); //此时返回bm为空
        options.inJustDecodeBounds = false;
         //缩放比
        int be = (int)(options.outHeight / (float)200);
        if (be <= 0)
            be = 1;
        options.inSampleSize = be;
        //重新读入图片,注意这次要把options.inJustDecodeBounds 设为 false哦
        bitmap=BitmapFactory.decodeFile("/sdcard/test.jpg",options);
        int w = bitmap.getWidth();
        int h = bitmap.getHeight();
        System.out.println(w+"   "+h);
        ImageView iv=new ImageView(this);
        iv.setImageBitmap(bitmap);

这样我们就可以读取较大的图片而不会内存溢出了。如果你想把压缩后的图片保存在Sdcard上的话就很简单了:
File file=new File("/sdcard/feng.png");
        try {
            FileOutputStream out=new FileOutputStream(file);
            if(bitmap.compress(Bitmap.CompressFormat.PNG, 100, out)){
                out.flush();
                out.close();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
压缩图片质量: 
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);     
其中的quality为0~100, 可以压缩图片质量, 不过对于大图必须对图片resize    
  
这个是等比例缩放:  
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);  
  
这个是截取图片某部分:  
bitmap = Bitmap.createBitmap(bitmap, x, y, width, height);  
 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3