问题描述
借助以下代码,我可以获取并显示带有照片的联系人列表。 现在,问题是照片以矩形显示,但我需要圆形图像。请根据我的代码帮助我,因为我知道一些使图像循环的方法,就像使用“位图着色器”等。但是说到SimpleCursorAdapter,我是空白的! 提前致谢:)
public class FragmentContacts extends Fragment
implements LoaderManager.LoaderCallbacks<Cursor>{
private ListView lv_ContactList;
private SearchView searchView;
private SimpleCursorAdapter mCursorAdapter;
private static final String disPLAY_NAME = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
Contacts.disPLAY_NAME_PRIMARY : Contacts.disPLAY_NAME;
private static final String[] contactsColumns = { Contacts._ID,Contacts.LOOKUP_KEY,disPLAY_NAME,Contacts.PHOTO_URI };
private final String contactsFilter = "(" +Contacts.HAS_PHONE_NUMBER+ "='1') AND (" +
Contacts.IN_VISIBLE_GROUP + "='1')";
private final String contactsSortOrder = disPLAY_NAME + " COLLATE LOCALIZED ASC";
private final static String[] listdisplayColumns = { disPLAY_NAME,Contacts.PHOTO_URI };
private final static int[] listDataViewIDs = { R.id.contact_name,R.id.imgContact };
String[] mSelectionArgs;
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_contacts,null);
lv_ContactList = (ListView)view.findViewById(R.id.lv_ContactList);
searchView = (SearchView)view.findViewById( R.id.searchView);
return view;
}
@Override
public void onResume(){
super.onResume();
mCursorAdapter= new SimpleCursorAdapter( getActivity(),R.layout.list_row_contact,null,listdisplayColumns,listDataViewIDs,0);
lv_ContactList.setAdapter(mCursorAdapter);
getLoaderManager().initLoader(0,this);
searchView.setonQueryTextListener( new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit( String query ) {return false;}
@Override
public boolean onQueryTextChange( String newText ) {
if( newText.isEmpty() ) mSelectionArgs = null;
else mSelectionArgs = new String[]{ "%"+newText.trim()+"%"};
getLoaderManager().restartLoader( 0,FragmentContacts.this );
return false;
}
} );
}
@Override
public Loader<Cursor> onCreateLoader( int id,Bundle args ) {
if(mSelectionArgs == null)
return new CursorLoader( getActivity(),Contacts.CONTENT_URI,contactsColumns,contactsFilter,contactsSortOrder );
else
return new CursorLoader( getActivity(),contactsFilter
+ " AND (" + disPLAY_NAME+" LIKE ?)",mSelectionArgs,contactsSortOrder );
}
@Override
public void onLoadFinished( Loader<Cursor> loader,Cursor data ) {
mCursorAdapter.swapCursor(data);
}
@Override
public void onLoaderReset( Loader<Cursor> loader ) {
mCursorAdapter.swapCursor(null);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)