当前位置: 编程技术>移动开发
本页文章导读:
▪Why masksToBounds = YES prevents CALayer shadow Why masksToBounds = YES prevents CALayer shadow?
layer.masksToBounds 和layer.shadowOffset同时对一个View使用会使得shadow出不来.
I'm adding a drop shadow effect to one my UIView. Which works pretty well. But as soon as I set the.........
▪ 关于获取手机通讯录联系人Contacts被deprecated的批改 关于获取手机通讯录联系人Contacts被deprecated的修改
从Android 2.0 SDK开始有关联系人provider的类变成了ContactsContract,虽然老的android.provider.Contacts能用,但是在SDK中标记为为deprecated将被放弃不.........
▪ 改包名导致JNI调用失败的有关问题 改包名导致JNI调用失败的问题
修改以前的代码,移动了一个文件,修改了其包名,在这个文件代码中有一些native函数通过jni调用库函数,于是重新生成了头文件,修改库函数代码中的函数.........
[1]Why masksToBounds = YES prevents CALayer shadow
来源: 互联网 发布时间: 2014-02-18
Why masksToBounds = YES prevents CALayer shadow?
layer.masksToBounds 和layer.shadowOffset同时对一个View使用会使得shadow出不来.
I'm adding a drop shadow effect to one my UIView. Which works pretty well. But as soon as I set the view's masksToBounds property to YES. The drop shadow effect isn't rendered any more.
Because shadow is an effect done outside the View, and that masksToBounds set to YES will tell the UIView not to draw everything that is outside itself.
If you want a roundedCorner view with shadow I suggest you do it with 2 views...
UIView view1 = [[UIView alloc] init]; UIView view2 = [[UIView alloc] init]; view1.layer.cornerRadius = 5.0; view1.layer.masksToBounds = YES; view2.layer.cornerRadius = 5.0; view2.layer.shadowColor = [[UIColor blackColor] CGColor]; view2.layer.shadowOpacity = 1.0; view2.layer.shadowRadius = 10.0; view2.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); [view2 addSubview:view1];
[view1 release];
原文地址:http://stackoverflow.com/questions/3690972/why-maskstobounds-yes-prevents-calayer-shadow
[2] 关于获取手机通讯录联系人Contacts被deprecated的批改
来源: 互联网 发布时间: 2014-02-18
关于获取手机通讯录联系人Contacts被deprecated的修改
从Android 2.0 SDK开始有关联系人provider的类变成了ContactsContract,虽然老的android.provider.Contacts能用,但是在SDK中标记为为deprecated将被放弃不推荐的方法,而从Android 2.0及API Level为5开始新增了android.provider.ContactsContract来代替原来的方法。
ContactsContract的子类ContactsContract.Contacts是一张表,代表了所有联系人的统计信息。比如联系人ID(—ID),查询键(LOOKUP_KEY),联系人的姓名(DISPLAY_NAME_PRIMARY),头像的id([url=]PHOTO_ID[/url])以及群组的id等等。
我们可以通过以下的方法取得所有联系人的表的Cursor对象:
1)ContentResolver contentResolver=getContentResolver();
2)Cursor cursor=contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);//根据URI对象ContactsContract.Contacts.CONTENT_URI查询所有联系人;
从Cursor对象里我们关键是要取得联系人的_id。通过它,再通过ContactsContract.CommonDataKinds的各个子类查询该_id联系人的电话(ContactsContract.CommonDataKinds.Phone),email(ContactsContract.CommonDataKinds.Email) 等等。
以取得该联系人所有电话为例:
1)int idFieldIndex=cursor.getColumnIndex(ContactsContract.Contacts._ID);
int id=cursor.getInt(idFieldIndex);//根据列名取得该联系人的id;
2)Cursor phonecursor=contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?", new String[]{Integer.toString(id)}, null);
ContactsContract.CommonDataKinds.Phone中根据查询相应id联系人的所有电话;
类似地可以ContactsContract.CommonDataKinds的不同的子类查询不同的内容。android文档告诉我们推荐使用 ContactsContract.Contacts.LOOKUP_KEY代替ContactsContract.Contacts._ID。
从Android 2.0 SDK开始有关联系人provider的类变成了ContactsContract,虽然老的android.provider.Contacts能用,但是在SDK中标记为为deprecated将被放弃不推荐的方法,而从Android 2.0及API Level为5开始新增了android.provider.ContactsContract来代替原来的方法。
ContactsContract的子类ContactsContract.Contacts是一张表,代表了所有联系人的统计信息。比如联系人ID(—ID),查询键(LOOKUP_KEY),联系人的姓名(DISPLAY_NAME_PRIMARY),头像的id([url=]PHOTO_ID[/url])以及群组的id等等。
我们可以通过以下的方法取得所有联系人的表的Cursor对象:
1)ContentResolver contentResolver=getContentResolver();
2)Cursor cursor=contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);//根据URI对象ContactsContract.Contacts.CONTENT_URI查询所有联系人;
从Cursor对象里我们关键是要取得联系人的_id。通过它,再通过ContactsContract.CommonDataKinds的各个子类查询该_id联系人的电话(ContactsContract.CommonDataKinds.Phone),email(ContactsContract.CommonDataKinds.Email) 等等。
以取得该联系人所有电话为例:
1)int idFieldIndex=cursor.getColumnIndex(ContactsContract.Contacts._ID);
int id=cursor.getInt(idFieldIndex);//根据列名取得该联系人的id;
2)Cursor phonecursor=contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?", new String[]{Integer.toString(id)}, null);
ContactsContract.CommonDataKinds.Phone中根据查询相应id联系人的所有电话;
类似地可以ContactsContract.CommonDataKinds的不同的子类查询不同的内容。android文档告诉我们推荐使用 ContactsContract.Contacts.LOOKUP_KEY代替ContactsContract.Contacts._ID。
[3] 改包名导致JNI调用失败的有关问题
来源: 互联网 发布时间: 2014-02-18
改包名导致JNI调用失败的问题
修改以前的代码,移动了一个文件,修改了其包名,在这个文件代码中有一些native函数通过jni调用库函数,于是重新生成了头文件,修改库函数代码中的函数名,重新生成库,本来想着包名改了,库函数名也跟着改了,应该没问题的,结果在加载的时候总是失败,跟踪发现是库函数中也回调了Java的代码,必须将回调Java代码部分的包名也一起改掉。
修改以前的代码,移动了一个文件,修改了其包名,在这个文件代码中有一些native函数通过jni调用库函数,于是重新生成了头文件,修改库函数代码中的函数名,重新生成库,本来想着包名改了,库函数名也跟着改了,应该没问题的,结果在加载的时候总是失败,跟踪发现是库函数中也回调了Java的代码,必须将回调Java代码部分的包名也一起改掉。
最新技术文章: