Android 问题积累


1. 根据《疯狂Android讲义(第2版)》P127页---仿Android系统launcher界面, 我本来想做一个AllApp的应用分页效果Activity,每个显示的应用都可以点

进去,效果如


但是发现页面总是间隔性的有点击事件

按照书上的写法在加自己的想法,我在oncreate里添加了mGridView.setOnItemClickListener(this);  

//下一屏函数是这么写的

public void next(){
	Log.v("调用next", " ");
	//如果不是最后一屏,左划切换屏幕
	if(screenNow < screenNum - 1)
		screenNow++;
	else 
		screenNow = 0;
	((GridView)switcher.getNextView()).setAdapter(adpter);
	switcher.setOutAnimation(this, R.anim.slide_out_left);
	switcher.setInAnimation(this, R.anim.slide_in_right);
	switcher.showNext();
}
问题在于:

 这是两个view交替显示,刚一开始我setOnItemClickListener, 这就给第一view设置了监听事件,。所以我们在next或者prev设置监听事件,第二个view总是没有,第一个view有。
解决办法:
就是在next函数里添加((GridView)switcher.getNextView()).setOnItemClickListener(this);这就是断章取义的危害啊!


2. 对于setOnKeyListener里的public boolean onKey(View v, int keyCode, KeyEvent event)函数,返回值有重要意义,返回值表示

True if the listener has consumed the event, false otherwise.。加入你返回false表示你没有处理这个事件,那么你的相关处理代码会被忽略。而假如你处理一个右键的事件,然后全部返回true,那有会出问题,这时候假如按上下左,系统都不会给你处理了,它认为你已经处理过了。这时候就要在右键处理事件中return true,其他情况return false。


3. 使用由其他Activity传来的Context获取控件,因为其实Activity本质上也是Context,所以我们可以Activity activity = (Activity)context;
imageView = (ImageView)activity.findViewById(R.id.albumImage);用这种方式获取控件。


4. 获取ImageView中的图片资源:

imageView.setDrawingCacheEnabled(true);
Bitmap mSrc = imageView.getDrawingCache(); 
imageView.setDrawingCacheEnabled(false); 

获取图像之前,一定要调用setDrawingCacheEnabled(true)方法,否则,无法从ImageView对象iv_photo中获取图像;

获取图像之后,一定要调用setDrawingCacheEnabled(false)方法,以清空画图缓冲区,否则,下一次从ImageView对象iv_photo中获取的图像,还是原来的图像。

如果设置的是背景,可使用getBackground,如果是src,可用getDrawable();

BitmapDrawable tmpBitmapDrawable = (BitmapDrawable)imageView.getBackground();
mSrc = tmpBitmapDrawable.getBitmap();

5. 读取文件谨防脏数据的出现

byte[] buffer2 = new byte[1024]; 
while( inputstream.read(buffer2) != -1){
fout.write(buffer2);
}

以这种写法读出来的数据很容易出现脏数据,因为write会把Buffer2的全部字节写入,而如果最后一次读取的内容不足整个数组长度,也就是1024,则write时会把这次部分和后面脏数据部分(上一次读出)一起写入。

6. 你把一个控件的Android id定义去掉,如果在其他地方,如相对布局中有其他组件引用了它,那它在R文件中还是会生成。

发布了102 篇原创文章 · 获赞 14 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/fofu33/article/details/39583125
今日推荐