完美实现同时分享图片和文字(Intent.ACTION_SEND)

使用以下代码可以很好的完成同时分享图片和文字的功能: private void share(String content, Uri uri){ Intent shareIntent = new Intent(Intent.ACTION_SEND); if(uri!=null){ shareIntent.putExtra(Intent.EXTRA_STREAM, uri); shareIntent.setType("image/*"); //当用户选择短信时使用sms_body取得文字 shareIntent.putExtra("sms_body", content); }else{ shareIntent.setType("text/plain"); } shareIntent.putExtra(Intent.EXTRA_TEXT, content); //自定义选择框的标题 //startActivity(Intent.createChooser(shareIntent, "邀请好友")); //系统默认标题 startActivity(shareIntent); }

二月 6, 2012

[Andorid]ScrollView嵌套GridView和ListView

以下内容核心思想来自网络,未找到文章原始地址。 GridView和ListView都自带滚动效果,但是开发中经常有这样那样的需求要求ScrollView嵌套GridView和ListView。比如: GridView需要显示“headerView”,即一个View要跟随GridView一起滚动;一个界面中有多个GridView或者ListView,或者混排,同时还要显示其他View。 解决办法:自定义一个GridView控件 public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Context context) { super(context); } public MyGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } } 该自定义控件只是重写了GridView的onMeasure方法,使GridView刚好足够大“放下”所有内容,从而使其不会出现滚动条,ScrollView嵌套ListView也是同样的道理。 布局文件中使用时将自定义的GridView控件插入到中间的LinearLayout中 <ScrollView> <LinearLayout> </LinearLayout> </ScrollView> PS:调试程序,很多时候看到的log,表现都是表象,掩盖了问题的本质。需要深入思考,直捣问题本质。

一月 31, 2012

Android源码开发中单个模块的编译自动化

# !/bin/sh . build/envsetup.sh lunch 1 case $1 in "pc") mmm packages/apps/Contacts/ find out -name Contacts.apk |xargs -t -i adb push {} system/app/ ;; "pp") mmm packages/providers/ContactsProvider find out -name ContactsProvider.apk |xargs -t -i adb push {} system/app/ ;; "ph") mmm packages/apps/Phone/ find out -name Phone.apk |xargs -t -i adb push {} system/app/ ;; "pf") mmm frameworks/base find out -name framework.jar |xargs -t -i adb push {} system/framework/ ;; "pm") mmm packages/apps/Mms/ find out -name Mms....

九月 2, 2011

Android对数据库表的一个约定:每张表都应该至少有_id这列

Android对数据库表有一个约定。就是每张表都应该至少有_id这列。ListView在使用CursorAdapter及其子类适配 cursor的时候,会默认的获取 _id 这列的值,如果你建的表没有 _id这列或者你的cursor中没有_id这列(查询时的projection中没有_id)就报错了。所以使用CursorAdapter及其子类的时候一定要使查询时的projection包含_id。CursorAdapter中相关代码如下: 1.注释 /** * Adapter that exposes data from a {@link android.database.Cursor Cursor} to a * {@link android.widget.ListView ListView} widget. The Cursor must include * a column named "_id" or this class will not work. */ 2.构造方法 public CursorAdapter(Context context, Cursor c) { init(context, c, true); } public CursorAdapter(Context context, Cursor c, boolean autoRequery) { init(context, c, autoRequery); } protected void init(Context context, Cursor c, boolean autoRequery) { boolean cursorPresent = c !...

八月 24, 2011