当前位置:  编程技术>移动开发
本页文章导读:
    ▪为啥ListView.setOnItemClickListener、setOnCreateContextMenuListener会无效        为什么ListView.setOnItemClickListener、setOnCreateContextMenuListener会无效 如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效, 事件会被子View捕获到,ListView无.........
    ▪ 图片下加另外一个图标        图片上加另外一个图标 如题,关键代码如下:   @Override protected void onCreate(Bundle savedInstanceState)  { super.onCreate(savedInstanceState); setContentView(R.layout.bitmap_change); iView = (ImageView)findViewById(R.id.........
    ▪ 2,HelloWorld 及源码关联 & Manifest 类关联       二,HelloWorld 及源码关联 & Manifest 类关联   1.构建一个helloworld的android程序非常简单,直接new 一个android的项目,直接运行,一个helloworld的项目就完成了。这一篇主要详细讲一下android的项.........

[1]为啥ListView.setOnItemClickListener、setOnCreateContextMenuListener会无效
    来源: 互联网  发布时间: 2014-02-18
为什么ListView.setOnItemClickListener、setOnCreateContextMenuListener会无效

如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,

事件会被子View捕获到,ListView无法捕获处理该事件.

解决方法:

在checkbox、button对应的view处加android:focusable="false"
   android:clickable="false" android:focusableInTouchMode="false"

其中focusable是关键

从OnClickListener调用getSelectedItemPosition(),Click 和selection 是不相关的,Selection是通过D-pad or trackball 来操作的,Click通常是点击操作的。

arg2参数才是点击事件位置的参数

第二种方法 就是在自己的getView中

convertView = mInflater . inflate ( R . layout . list_item_text , null );  
convertView . setClickable ( true );  
convertView . setOnClickListener ( clickListener );  
public OnClickListener myClickListener = new OnClickListener () {  
public void onClick ( View v ) {  
                  //code to be written to handle the click event  
    }  
};  

 

刚刚在网上找到问题的关键,终于解决了:

 

如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法,然而将ListView的Item Layout的子控件focusable属性设置为false有点繁琐,我们可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendant”即可,这样Item Layout就屏蔽了所有子控件获取Focus的权限,不需要针对Item Layout中的每一个控件重新设置focusable属性了,如此就可以顺利的响应onItemClickListener中的onItenClick()方法了。


    
[2] 图片下加另外一个图标
    来源: 互联网  发布时间: 2014-02-18
图片上加另外一个图标

如题,关键代码如下:

 

@Override

protected void onCreate(Bundle savedInstanceState) 

{

super.onCreate(savedInstanceState);

setContentView(R.layout.bitmap_change);

iView = (ImageView)findViewById(R.id.iv);

originBg = BitmapFactory.decodeResource(this.getResources(), R.drawable.download_completed);

labelBitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon);

int widthOrg = originBg.getWidth();

int heightOrg = originBg.getHeight();

resultBitmap = Bitmap.createBitmap(widthOrg,heightOrg,Config.ARGB_8888);

 

Canvas canvasIn = new Canvas(resultBitmap);

canvasIn.drawBitmap(originBg,0,0,null);

canvasIn.drawBitmap(labelBitmap,10,10,null);

canvasIn.save();

iView.setImageBitmap(resultBitmap);

// newMap = Bitmap.createBitmap(bitmap, 0, 0, widthOrg, heightOrg, matrix,true);

 

}

private Bitmap zoomBitmap(float scale)

{

Matrix m = new Matrix();

m.postScale(scale, scale);

resultBitmap = Bitmap.createBitmap(resultBitmap, 0, 0, resultBitmap.getWidth(), resultBitmap.getHeight(), m, true);

return resultBitmap;

}


    
[3] 2,HelloWorld 及源码关联 & Manifest 类关联
    来源: 互联网  发布时间: 2014-02-18
二,HelloWorld 及源码关联 & Manifest 类关联

 

1.构建一个helloworld的android程序非常简单,直接new 一个android的项目,直接运行,一个helloworld的项目就完成了。这一篇主要详细讲一下android的项目目录结构以及源码关联。看图:



 相对于J2EE项目结构的灵活,Android项目的结构显得比较固定,只要你弄清楚每个资源文件里面该放什么东西,就不会出现J2EE中,资源放错地方not found的问题。当然两者的相同之处还是很明显的,android项目中围绕着四大组件构建起来的业务逻辑,在JavaEE中你可以看作是Servlet或者SSH,每一个组件或者每一个框架都负责处理属于自己的东西。AndroidManifest.xml可以看做是web.xml。

src :包含应用程序的所有源代码

gen :gen下面的R类是自动生成的,这是一个非常顽强的类即使把它删除也会自动创建。这个类里面 包含很多内部类,每个内部类对应相应的资源文件。

 

public final class R {
    public static final class attr {
	}
	//此类对应res资源包下的drawable
	public static final class drawable {
	//每一张图片都会生成一个唯一的整型标识符
        public static final int icon=0x7f020000;
	}
	//此类对应布局文件layout
	public static final class layout {
	//位布局文件生成的对应的标识符
        public static final int main=0x7f030000;
	}
	//对应values资源包主要用于国际化
	public static final class string {
	//为不同的字符串生成相对应的标识符
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}

 assets: 可以存放一些其他,额外的文件或者资源

res:资源文件包 drawable用于存放图片资源,layout用于存放布局文件,values用于存放程序所

     需文字资源。着重说一下drawable,在之前的版本中,只有一个drawable,而2.1版本之后(包括 2.1)出现了drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。

  他们的主要区别:

  (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

  (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)

  (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)

  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

  在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

AndroidManifest.xml:应用程序的描述文件,此文件定义应用程序的Activity,ContentProvider,Service,receiver以及意图过滤器。还定义了应用程序所需要的权限等等。

Default.properties:主要定义了应用程序最低的兼容版本。

  Proguard.cfg:主要用于优化,压缩,混淆java字节码文件的工具。

2,开发中经常需要扩展或者自定义某些功能,这就需要对源代码有一些深入的了解。目前android 除了支持平板的3.0以上的版本源码还没有开放。其余版本都可以下载到。说一下如何关联源码。例如我关联android2.2版本的。



 然后在Eclipse上新建一个android的程序,右键→properties→Java Buid Path 


 

此时源码已经关联好了,但是还有一个类无法找到。Manifest.java 权限的清单文件。这个类定义了所有需要用到的权限。


 

重启Eclipse,查找一下该类,看下是否关联上!


 有需要源码的留下邮箱。

 

1 楼 yoyo837 2011-11-22  
git好慢,有什么快一点的下载方式么? yoyo837@hotmail.com

3ks...
2 楼 alai881020 2011-12-01  
alai881020@163.com 多谢博主
3 楼 anduo1989 2011-12-29  
anduo1989@gmail.com

3ks
4 楼 goudan513 2012-02-01  
carey_ccjj@163.com
麻烦博主发给我一份。谢谢
5 楼 fulianqiu 2012-02-06  
fulianqiu123@163.com
麻烦楼主给我发一份
6 楼 zonghengmodao 2012-02-27  
707630678#qq.com
楼主给我发一份,谢谢啦
7 楼 loveryoume 2012-03-27  
1014220281@qq.com,感谢楼主,急需源码!
8 楼 LoveChannel 2012-04-20  
来迟了,楼主,麻烦给我发一下源码,谢谢!!楼主画的学习路线图,不错啊,收下了,287989902@qq.com
9 楼 assassinme 2012-04-28  
来迟了,楼主,麻烦发一下源码,谢谢!!!
assassinme@163.com

    
最新技术文章:
▪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