如何将Android的ListView控件中的每一个Item项添加图标

如何将Android的ListView控件中的每一个Item项添加图标,第1张

使用Adapter的notifyDataSetChanged方法会回调Adapter的getView方法,你可以在这个getView方法里添加标志位,只有是当前执行的Item才显示图标,这个图标可以每个Item都有,然后其他的GONE,当然这种方法比较浪费资源;也可以执行到这个Item时向这个Item动态添加一个ImageView,执行完时再移除这个ImageView.

ATLINLINE HBITMAP AtlLoadGdiplusImage(ATL::_U_STRINGorID bitmap, ATL::_U_STRINGorID type = (UINT) 0)

{

USES_CONVERSION

static bool s_bInitied = false

if( !s_bInitied ) {

s_bInitied = true

Gdiplus::GdiplusStartupInput gsi

Gdiplus::GdiplusStartupOutput gso

ULONG uToken = 0

Gdiplus::GdiplusStartup(&uToken, &gsi, &gso)

}

Gdiplus::Bitmap* pBitmap = NULL

if( HIWORD(bitmap.m_lpstr) != NULL ) {

// Load from filename

pBitmap = new Gdiplus::Bitmap(T2CW(bitmap.m_lpstr))

}

else if( type.m_lpstr != NULL &&type.m_lpstr != RT_BITMAP ) {

// Loading PNG, JPG resources etc

WTL::CResource res

if( !res.Load(type, bitmap) ) return NULL

DWORD dwSize = res.GetSize()

HANDLE hMemory = ::GlobalAlloc(GMEM_MOVEABLE, dwSize)

if( hMemory == NULL ) return NULL

::memcpy(::GlobalLock(hMemory), res.Lock(), dwSize)

::GlobalUnlock(hMemory)

IStream* pStream = NULL

if( FAILED( ::CreateStreamOnHGlobal(hMemory, TRUE, &pStream) ) ) {

::GlobalFree(hMemory)

return FALSE

}

pBitmap = new Gdiplus::Bitmap(pStream)

pStream->Release()

}

else {

// This only loads BMP resources

pBitmap = new Gdiplus::Bitmap(_Module.GetResourceInstance(), (LPCWSTR) (UINT) bitmap.m_lpstr)

}

if( pBitmap == NULL ) return NULL

HBITMAP hBitmap = NULL

pBitmap->GetHBITMAP(NULL, &hBitmap)

delete pBitmap

return hBitmap

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7980387.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存