在联系人中放入图片

本文介绍如何使用Android开发应用来查看并拨打联系人的电话号码,包括布局设计、权限申请、数据获取、界面展示及拨打电话功能实现。



 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
        android:src="@drawable/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Name: "
            />
            <TextView android:id="@+id/contact_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Phone: "
            />
            <TextView android:id="@+id/phone_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />

public class ListContacts extends ListActivity {
 
    private SimpleCursorAdapter myAdapter;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
        startManagingCursor(cursor);
 
        // start mappings
        String[] columns = new String[] {People.NAME, People.NUMBER};
        int[] names = new int[] {R.id.contact_name, R.id.phone_number};
 
        myAdapter = new SimpleCursorAdapter(this, R.layout.main, cursor, columns, names);
        setListAdapter(myAdapter);
    }
 
    @Override
    protected void onListItemClick(ListView listView, View view, int position, long id) {
        super.onListItemClick(listView, view, position, id);
 
        Intent intent = new Intent(Intent.ACTION_CALL);
        Cursor cursor = (Cursor) myAdapter.getItem(position);
        long phoneId = cursor.getLong(cursor.getColumnIndex(People.PRIMARY_PHONE_ID));
        intent.setData(ContentUris.withAppendedId(Phones.CONTENT_URI, phoneId));
 
        startActivity(intent);
    }
}

 

这里一定要注意 myAdapter.getItem(position);取出来的对象是cursor

public class MySimpleCursorAdapter extends SimpleCursorAdapter {
    private Cursor _cursor;
    private Context _context;
 
    public MySimpleCursorAdapter
(Context context, int layout, Cursor c, String[] from, int[] to) {
        super(context, layout, c, from, to);
        _cursor = c;
        _context = context;
    }
 
   
/**
     * {@inheritDoc}
     */

    @Override
    public
void bindView(View view, Context context, Cursor cursor) {
        ImageView imageView = (ImageView) view.findViewById(R.id.contact_image);
 
       
int id = _cursor.getColumnIndex(People._ID);
        Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, _cursor.getLong(id));
 
        Bitmap bitmap
= People.loadContactPhoto(_context, uri, R.drawable.icon, null);
 
        imageView.
setImageBitmap(bitmap);
 
        super.
bindView(view, context, cursor);
    }
}

《移动应用开发》课程 第七次实验 1、在Android Studio中,完成以下功能。 图-1 联系人列表 图-2 添加联系人 图-3 联系人详情 请开发手机电话号码簿。在默认页面中,按照图-1方式展示页面内容[ 参见实验报告中的问题1。],要求所有的信息均是从SQLite中进行获取,具体包括: (1)联系人数量; (2)联系人的姓名。 联系人姓名可以使用全英文方式,要求按照首字母进行分组。联系人数量在20人以上,联系人分组要求在4组以上。 联系人图标采用预先设置的图片库进行加载,并允许用户进行选取更换其他图标(参见课件中相关Demo)。 点击联系人列表上方的搜索栏后,显示搜索页面(请自行设计页面布局效果),在输入检索关键字后,查询联系人信息,并以列表方式显示[ 参见实验报告中的问题2。]。 点击联系人列表条目(包括经过检索返回的联系人列表),对应跳转到联系人详情页面(参见图-3),当用户对应点击号码条目对应的“拨打电话”、“视频电话”、“发送信息”按钮,采用Toast方式显示对应的功能,即Dial number,Video call,Send message。 点击图-1中的“+”(添加)按钮,跳转到添加联系人信息页面(参见图-2),为用户提供添加联系人信息(包括姓名、电话号码、电子信箱、备注、单位信息)和头像信息。保存后,将信息存储到数据库中,并相应更新联系人列表的显示内容[ 参见实验报告中的问题3。]。 2、注意: ① 请将补充的图片素材放入“根目录/Extra”; ② 请将实验报告放入“根目录/Doc”。
最新发布
06-10
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值