android怎么样获取当前activity下所有的textview控件

android怎么样获取当前activity下所有的textview控件,第1张

把设置的方法放在一个方法里面,然后把Id当做参数传进去,比如Ridtext1的话,可以这样用一个变量String

baseId="Rid",这个方法可以写成setConfig(String

strId){String

currentId=baseId+strId;

//后面的代码按下面来

}

然后再用下面的方法

public

static

int

getResourdIdByResourdName(Context

context,

String

ResName){

int

resourceId

=

0;

try

{

Field

field

=

RdrawableclassgetField(ResName);

fieldsetAccessible(true);

try

{

resourceId

=

fieldgetInt(null);

}

catch

(IllegalArgumentException

e)

{

logshowLogDebug("IllegalArgumentException:"

+

etoString());

}

catch

(IllegalAccessException

e)

{

logshowLogDebug("IllegalAccessException:"

+

etoString());

}

}

catch

(NoSuchFieldException

e)

{

logshowLogDebug("NoSuchFieldException:"

+

etoString());

}

return

resourceId;

}将currentId作为参数传入就可以了,这时在调用findViewById找,,,

采纳啊,大哥,写了这么多

打开VC程序——文件——新建——工程中的MFC AppWizard(exe),在工程下面的框中输入工程名(假定工程名为111),点确定——选多重文档,点下一个——后面都点下一个直到完成确定,基本框架就完成了,下面就加代码。

这时VC界面上左边框的下面有三个按钮:ClassView、ResourceView和FileView,ClassView里面是工程111的类:CAdoutDlg、CChildFrame、CMy111App、CMy111Doc、CMy111View和Globals;点ResourceView里面是资源类:Accelerator、Dialog、Icon、Menu、String Table、Toolbar和Version;点开FileView里面是文件类:Source File、Header Files、Resource Files和ReadMetxt。

点界面的“工程”按钮——添加工程——新建——选C++ Source File,在文件下面的框里输入文件名(如DIBAPI),点“结束”,这样在FileView中的Source Files里面就多了一个DIBAPIcpp文件,所有的代码都加在该文件中。再点界面的“工程”按钮——添加工程——新建——选C/C++ Header File,在文件下面的框里输入文件名(和前面的文件名必须一致),点“结束”,这样在FileView中的Header Files里面就多了一个DIBAPIh文件,该文件是DIBAPIcpp的头文件。

点开DIBAPIh文件,里面是空白的,把如下代码考入文件中:

//DIBAPIh

#ifndef _INC_DIBAPI

#define _INC_DIBAPI

DECLARE_HANDLE(HDIB);

#define PALVERSION 0x300

#define IS_WIN30_DIB(lpbi) (((LPDWORD)(lpbi))==sizeof(BITMAPINFOHEADER))

#define RECTWIDTH(lpRect) ((lpRect)->right-(lpRect)->left)

#define RECTHEIGHT(lpRect) ((lpRect)->bottom-(lpRect)->top)

#define WIDTHBYTES(bits) (((bits)+31)/324)

#define DIB_HEADER_MARKER ((WORD)('M'<<8)|'B')

BOOL WINAPI PaintDIB(HDC,LPRECT,HDIB,LPRECT,CPalette pPal);

BOOL WINAPI CreateDIBPalette(HDIB hDIB,CPalette cPal);

LPSTR WINAPI FindDIBBits(LPSTR lpbi);

DWORD WINAPI DIBWidth(LPSTR lpDIB);

DWORD WINAPI DIBHeight(LPSTR lpDIB);

WORD WINAPI PaletteSize(LPSTR lpbi);

WORD WINAPI DIBNumColors(LPSTR lpbi);

HGLOBAL WINAPI CopyHandle(HGLOBAL h);

BOOL WINAPI SaveDIB(HDIB hDib,CFile& file);

HDIB WINAPI ReadDIBFile(CFile& file);

//在此处输入自己的函数声明

#endif//!_INC_DIBAPI

上面这些函数是实现图像的读取、存储等图像处理的基本功能的,你将自己需要的函数也输入到“//在此处输入自己的函数声明”的下面。

点开DIBAPIcpp文件,里面是空白的,将如下代码加入其中:

//DIBAPIcpp

#include "stdafxh"

#include "DIBAPIh"

WORD WINAPI DIBNumColors(LPSTR lpbi)

{

WORD wBitCount;

if(IS_WIN30_DIB(lpbi))

{

DWORD dwClrUsed;

dwClrUsed=((LPBITMAPINFOHEADER)lpbi)->biClrUsed;

if(dwClrUsed)

return (WORD)dwClrUsed;

}

if(IS_WIN30_DIB(lpbi))

wBitCount=((LPBITMAPINFOHEADER)lpbi)->biBitCount;

else

wBitCount=((LPBITMAPCOREHEADER)lpbi)->bcBitCount;

switch(wBitCount)

{

case 1:

return 2;

case 4:

return 16;

case 8:

return 256;

default:

return 0;

}

}

WORD WINAPI PaletteSize(LPSTR lpbi)

{

if(IS_WIN30_DIB(lpbi))

return (WORD)(DIBNumColors(lpbi)sizeof(RGBQUAD));

else

return (WORD)(DIBNumColors(lpbi)sizeof(RGBTRIPLE));

}

LPSTR WINAPI FindDIBBits(LPSTR lpbi)

{

return (lpbi+(LPDWORD)lpbi+::PaletteSize(lpbi));

}

DWORD WINAPI DIBWidth(LPSTR lpDIB)

{

LPBITMAPINFOHEADER lpbmi;

LPBITMAPCOREHEADER lpbmc;

lpbmi=(LPBITMAPINFOHEADER)lpDIB;

lpbmc=(LPBITMAPCOREHEADER)lpDIB;

if(IS_WIN30_DIB(lpDIB))

return lpbmi->biWidth;

else

return (DWORD)lpbmc->bcWidth;

}

DWORD WINAPI DIBHeight(LPSTR lpDIB)

{

LPBITMAPINFOHEADER lpbmi;

LPBITMAPCOREHEADER lpbmc;

lpbmi=(LPBITMAPINFOHEADER)lpDIB;

lpbmc=(LPBITMAPCOREHEADER)lpDIB;

if(IS_WIN30_DIB(lpDIB))

return lpbmi->biHeight;

else

return (DWORD)lpbmc->bcHeight;

}

BOOL WINAPI PaintDIB(HDC hDC,LPRECT lpDCRect,HDIB hDIB,LPRECT lpDIBRect,CPalette pPal)

{

LPSTR lpDIBHdr;

LPSTR lpDIBBits;

BOOL bSuccess=FALSE;

HPALETTE hPal=NULL;

HPALETTE hOldPal=NULL;

if(hDIB==NULL)

return FALSE;

lpDIBHdr=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

lpDIBBits=FindDIBBits(lpDIBHdr);

if(pPal!=NULL)

{

hPal=(HPALETTE)pPal->m_hObject;

hOldPal=::SelectPalette(hDC,hPal,TRUE);

}

::SetStretchBltMode(hDC,COLORONCOLOR);

if((RECTWIDTH(lpDCRect)==RECTWIDTH(lpDIBRect))&&(RECTHEIGHT(lpDCRect)==RECTHEIGHT(lpDIBRect)))

{

bSuccess=::SetDIBitsToDevice(hDC,lpDCRect->left,lpDCRect->top,RECTWIDTH(lpDCRect),RECTHEIGHT(lpDCRect),lpDIBRect->left,\

(int)DIBHeight(lpDIBHdr)-lpDIBRect->top-RECTHEIGHT(lpDIBRect),0,(WORD)DIBHeight(lpDIBHdr),\

lpDIBBits,(LPBITMAPINFO)lpDIBHdr,DIB_RGB_COLORS);

}

else

{

bSuccess=::StretchDIBits(hDC,lpDCRect->left,lpDCRect->top,RECTWIDTH(lpDCRect),RECTHEIGHT(lpDCRect),lpDIBRect->left,\

lpDIBRect->top,RECTWIDTH(lpDIBRect),RECTHEIGHT(lpDIBRect),\

lpDIBBits,(LPBITMAPINFO)lpDIBHdr,DIB_RGB_COLORS,SRCCOPY);

}

::GlobalUnlock((HGLOBAL)hDIB);

if(hOldPal)

::SelectPalette(hDC,hOldPal,TRUE);

GlobalUnlock(hDIB);

return bSuccess;

}

BOOL WINAPI CreateDIBPalette(HDIB hDIB,CPalette pPal)

{

LPLOGPALETTE lpPal;

HANDLE hLogPal;

HPALETTE hPal=NULL;

LPSTR lpbi;

LPBITMAPINFO lpbmi;

LPBITMAPCOREINFO lpbmc;

BOOL bWinStyleDIB;

int i;

WORD wNumColors;

BOOL bResult=FALSE;

if(hDIB==NULL)

return FALSE;

lpbi=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

lpbmi=(LPBITMAPINFO)lpbi;

lpbmc=(LPBITMAPCOREINFO)lpbi;

wNumColors=DIBNumColors(lpbi);

bWinStyleDIB=IS_WIN30_DIB(lpbi);

if(wNumColors!=0)

{

hLogPal=::GlobalAlloc(GHND,sizeof(LOGPALETTE)+sizeof(PALETTEENTRY)wNumColors);

if(hLogPal==0)

{

::GlobalUnlock((HGLOBAL)hDIB);

return FALSE;

}

lpPal=(LPLOGPALETTE)::GlobalLock(hLogPal);

lpPal->palVersion=PALVERSION;

lpPal->palNumEntries=(WORD)wNumColors;

bWinStyleDIB=IS_WIN30_DIB(lpbi);

for(i=0;i<(int)wNumColors;i++)

{

if(bWinStyleDIB)

{

lpPal->palPalEntry[i]peRed=lpbmi->bmiColors[i]rgbRed;

lpPal->palPalEntry[i]peGreen=lpbmi->bmiColors[i]rgbGreen;

lpPal->palPalEntry[i]peBlue=lpbmi->bmiColors[i]rgbBlue;

lpPal->palPalEntry[i]peFlags=0;

}

else

{

lpPal->palPalEntry[i]peRed=lpbmc->bmciColors[i]rgbtRed;

lpPal->palPalEntry[i]peGreen=lpbmc->bmciColors[i]rgbtGreen;

lpPal->palPalEntry[i]peBlue=lpbmc->bmciColors[i]rgbtBlue;

lpPal->palPalEntry[i]peFlags=0;

}

}

bResult=pPal->CreatePalette(lpPal);

::GlobalUnlock((HGLOBAL)hLogPal);

::GlobalFree((HGLOBAL)hLogPal);

}

::GlobalUnlock((HGLOBAL)hDIB);

return bResult;

}

HGLOBAL WINAPI CopyHandle(HGLOBAL h)

{

if(h==NULL)

return NULL;

DWORD dwLen=::GlobalSize((HGLOBAL)h);

HGLOBAL hCopy=::GlobalAlloc(GHND,dwLen);

if(hCopy!=NULL)

{

void lpCopy=::GlobalLock((HGLOBAL)hCopy);

void lp=::GlobalLock((HGLOBAL)h);

memcpy(lpCopy,lp,dwLen);

::GlobalUnlock(hCopy);

::GlobalUnlock(h);

}

return hCopy;

}

BOOL WINAPI SaveDIB(HDIB hDib,CFile& file)

{

BITMAPFILEHEADER bmfHdr;

LPBITMAPINFOHEADER lpBI;

DWORD dwDIBSize;

if(!hDib)

return FALSE;

lpBI=(LPBITMAPINFOHEADER)::GlobalLock((HGLOBAL)hDib);

if(lpBI==NULL)

return FALSE;

if(!IS_WIN30_DIB(lpBI))

{

::GlobalUnlock((HGLOBAL)hDib);

return FALSE;

}

bmfHdrbfType=DIB_HEADER_MARKER;

dwDIBSize=(LPDWORD)lpBI+::PaletteSize((LPSTR)lpBI);

if((lpBI->biCompression==BI_RLE8)||(lpBI->biCompression==BI_RLE4))

dwDIBSize+=lpBI->biSizeImage;

else

{

DWORD dwBmBitsSize;

dwBmBitsSize=WIDTHBYTES((lpBI->biWidth)((DWORD)lpBI->biBitCount))lpBI->biHeight;

dwDIBSize+=dwBmBitsSize;

lpBI->biSizeImage=dwBmBitsSize;

}

bmfHdrbfSize=dwDIBSize+sizeof(BITMAPFILEHEADER);

bmfHdrbfReserved1=0;

bmfHdrbfReserved2=0;

bmfHdrbfOffBits=(DWORD)sizeof(BITMAPFILEHEADER)+lpBI->biSize+::PaletteSize((LPSTR)lpBI);

TRY

{

fileWrite((LPSTR)&bmfHdr,sizeof(BITMAPFILEHEADER));

fileWriteHuge(lpBI,dwDIBSize);

}

CATCH(CFileException,e)

{

::GlobalUnlock((HGLOBAL)hDib);

THROW_LAST();

}

END_CATCH

::GlobalUnlock((HGLOBAL)hDib);

return TRUE;

}

HDIB WINAPI ReadDIBFile(CFile& file)

{

BITMAPFILEHEADER bmfHeader;

DWORD dwBitsSize;

HDIB hDIB;

LPSTR pDIB;

dwBitsSize=fileGetLength();

if(fileRead((LPSTR)&bmfHeader,sizeof(bmfHeader))!=sizeof(bmfHeader))

return NULL;

if(bmfHeaderbfType!=DIB_HEADER_MARKER)

return NULL;

hDIB=(HDIB)::GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,dwBitsSize);

if(hDIB==0)

return NULL;

pDIB=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

if(fileReadHuge(pDIB,dwBitsSize-sizeof(BITMAPFILEHEADER))!=dwBitsSize-sizeof(BITMAPFILEHEADER))

{

::GlobalUnlock((HGLOBAL)hDIB);

::GlobalFree((HGLOBAL)hDIB);

return NULL;

}

::GlobalUnlock((HGLOBAL)hDIB);

return hDIB;

}

//在此处输入自己的函数定义

上面是DIBAPIh头文件中声明的函数的定义,你将自己的函数定义加到“//在此处输入自己的函数定义”后面。

下面加相应的消息映射函数,点Ctrl+W键,会出现MFC ClassWizard对话框,点Message Maps,在Class name下面的框中选择CMy111Doc,在Messages里面选中OnOpenDocument,然后点击Add Function按钮就加入了相应的消息映射函数,同样的方法以此加入OnSaveDocument、DeleteContents、CanCloseFrame相应的消息函数,点“确定”即可。

点开111Doccpp文件,里面有相应的消息映射函数定义位置,在函数CMy111Doc::CMy111Doc()里输入以下代码:

m_refColorBKG=0x00808080;

m_hDIB=NULL;

m_palDIB=NULL;

m_sizeDoc=CSize(1,1);

在函数CMy111Doc::~CMy111Doc()里输入以下代码:

if(m_hDIB!=NULL)

::GlobalFree((HGLOBAL)m_hDIB);

if(m_palDIB!=NULL)

delete m_palDIB;

在函数BOOL CMy111Doc::OnOpenDocument(LPCTSTR lpszPathName)里/ TODO: Add your specialized creation code here下面添加如下代码:

CFile file;

CFileException fe;

if(!fileOpen(lpszPathName,CFile::modeRead|CFile::shareDenyWrite,&fe))

{

ReportSaveLoadException(lpszPathName,&fe,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);

return FALSE;

}

DeleteContents();

BeginWaitCursor();

TRY

{

m_hDIB=::ReadDIBFile(file);

}

CATCH(CFileException,eLoad)

{

fileAbort();

EndWaitCursor();

ReportSaveLoadException(lpszPathName,eLoad,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);

m_hDIB=NULL;

return FALSE;

}

END_CATCH

InitDIBData();

EndWaitCursor();

if(m_hDIB==NULL)

{

CString strMsg;

strMsg="读取图像时出错!可能是不支持该类型的图像文件!";

MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);

return FALSE;

}

SetPathName(lpszPathName);

SetModifiedFlag(FALSE);

在函数BOOL CMy111Doc::OnSaveDocument(LPCTSTR lpszPathName)里// TODO: Add your specialized code here and/or call the base class后面添加如下代码:

CFile file;

CFileException fe;

if(!fileOpen(lpszPathName,CFile::modeCreate|CFile::modeReadWrite|CFile::shareExclusive,&fe))

{

ReportSaveLoadException(lpszPathName,&fe,TRUE,AFX_IDP_INVALID_FILENAME);

return FALSE;

}

BOOL bSuccess=FALSE;

TRY

{

BeginWaitCursor();

bSuccess=::SaveDIB(m_hDIB,file);

fileClose();

}

CATCH(CException,eSave)

{

fileAbort();

EndWaitCursor();

ReportSaveLoadException(lpszPathName,eSave,TRUE,AFX_IDP_FAILED_TO_SAVE_DOC);

return FALSE;

}

END_CATCH

EndWaitCursor();

SetModifiedFlag(FALSE);

if(!bSuccess)

{

CString strMsg;

strMsg="无法保存BMP图像";

MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);

}

点开ClassView,右键点击CMy111Doc类,点Add Member Variable出现添加成员变量对话框,在Variable Type下的框中输入变量类型名HDIB,在Variable Name中输入变量名m_hDIB,在Access中选中Public就在CMy111Doc中加入了公共成员变量m_hDIB;同样加入int类型的m_nColorIndex、COLORREF类型的m_refColorBKG公共成员变量,再添加保护成员变量(在Access中选中Protected)CSize类的m_sizeDoc、CPalette类的m_palDIB变量。右键点击CMy111Doc类,点Add Member Function出现添加成员函数对话框,在Function Type下的框中输入函数类型名void,在Function Declaration中输入函数名InitDIBData(),在Access中选中Public就在CMy111Doc中加入了公共成员函数InitDIBData();同样方法加入void类型的公共成员函数ReplaceHDIB(HDIB hDIB)。在111Doccpp中加入函数的代码,InitDIBData()里加如下代码:

if(m_palDIB!=NULL)

{

delete m_palDIB;

m_palDIB=NULL;

}

if(m_hDIB==NULL)

return;

LPSTR lpDIB=(LPSTR)::GlobalLock((HGLOBAL)m_hDIB);

if(::DIBWidth(lpDIB)>INT_MAX||::DIBHeight(lpDIB)>INT_MAX)

{

::GlobalUnlock((HGLOBAL)m_hDIB);

::GlobalFree((HGLOBAL)m_hDIB);

m_hDIB=NULL;

CString strMsg;

strMsg="BMP图像太大!";

MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);

return;

}

m_sizeDoc=CSize((int)::DIBWidth(lpDIB),(int)::DIBHeight(lpDIB));

::GlobalUnlock((HGLOBAL)m_hDIB);

m_palDIB=new CPalette;

if(m_palDIB==NULL)

{

::GlobalFree((HGLOBAL)m_hDIB);

m_hDIB=NULL;

return;

}

if(::CreateDIBPalette(m_hDIB,m_palDIB)==NULL)

{

delete m_palDIB;

m_palDIB=NULL;

return;

}

在函数ReplaceHDIB(HDIB hDIB)中加入如下代码:

if(m_hDIB!=NULL)

::GlobalFree((HGLOBAL)m_hDIB);

m_hDIB=hDIB;

在CMy111doch的

// Attributes

public:

下面加入如下代码:

HDIB GetHDIB() const

{

return m_hDIB;

}

CPalette GetDocPalette() const

{

return m_palDIB;

}

CSize GetDocSize() const

{

return m_sizeDoc;

}

注意要在111Doch前加上#include "DIBAPIh"语句(在class CMy111Doc:public CDocument语句前)

下面为CMy111View中的函数 void CMy111View::OnDraw(CDC pDC)中添加如下代码:

BeginWaitCursor();

CMy111 pDoc = GetDocument();

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

HDIB hDIB=pDoc->GetHDIB();

if(hDIB!=NULL)

{

LPSTR lpDIB=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

int cxDIB=(int)::DIBWidth(lpDIB);

int cyDIB=(int)::DIBHeight(lpDIB);

::GlobalUnlock((HGLOBAL)hDIB);

CRect rcDIB;

rcDIBtop=rcDIBleft=0;

rcDIBright=cxDIB;

rcDIBbottom=cyDIB;

CRect rcDest;

if(pDC->IsPrinting())

{

int cxPage=pDC->GetDeviceCaps(HORZRES);

int cyPage=pDC->GetDeviceCaps(VERTRES);

int cxInch=pDC->GetDeviceCaps(LOGPIXELSX);

int cyInch=pDC->GetDeviceCaps(LOGPIXELSY);

rcDesttop=rcDestleft=0;

rcDestbottom=(int)(((double)cyDIBcxPagecyInch)/((double)cxDIBcxInch));

rcDestright=cxPage;

int temp=cyPage-(rcDestbottom-rcDesttop);

rcDestbottom+=temp/2;

rcDesttop+=temp/2;

}

else

{

rcDest=rcDIB;

}

::PaintDIB(pDC->m_hDC,&rcDest,pDoc->GetHDIB(),&rcDIB,pDoc->GetDocPalette());

}

EndWaitCursor();

以上是关于图像打开、显示、保存的有关步骤和代码。

在111cpp文件的InitInstance()函数的ParseCommandLine(cmdInfo);语句下输入语句

cmdInfom_nShellCommand = CCommandLineInfo::FileNothing;

则启动时不自动打开一个空文档。

javaxservletServletException: Circular view path [adds]: would dispatch back to the current handler URL [/inm-web-kh/adds] again Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation)

at orgspringframeworkwebservletviewInternalResourceViewprepareForRendering(InternalResourceViewjava:205)

at orgspringframeworkwebservletviewInternalResourceViewrenderMergedOutputModel(InternalResourceViewjava:145)

at orgspringframeworkwebservletviewAbstractViewrender(AbstractViewjava:303)

at orgspringframeworkwebservletDispatcherServletrender(DispatcherServletjava:1243)

at orgspringframeworkwebservletDispatcherServletprocessDispatchResult(DispatcherServletjava:1027)

at orgspringframeworkwebservletDispatcherServletdoDispatch(DispatcherServletjava:971)

at orgspringframeworkwebservletDispatcherServletdoService(DispatcherServletjava:893)

at orgspringframeworkwebservletFrameworkServletprocessRequest(FrameworkServletjava:968)

at orgspringframeworkwebservletFrameworkServletdoPost(FrameworkServletjava:870)

at javaxservlet>

C++中关于classview、resourceview、fileview workspace是工作空间。

classview,是类视图

reourecview是,资源视图

fileview是,文件视图。 他们本质是没有区别的,只是查看的方式不同。

workspace是一个总体,包括三者,其实还有databaseview,如果你做数居库的程序的时候才会出现 类视图:可以根据类名直接跳转到,对应的h,cpp文件,从逻辑上比较清晰,可以直接定位到,相关的声明和定义当中。

同样的道理,资源视图和类图一样,把资源分成了很多种类型,比如,对话框,图标等。双机的时候,可以跳转到对应的编辑环境。 fileview也很简单,他从文件分布的角度,把整个工程文件的布局展现在你的面前,当然,也可以直接编辑他们。

1文本框(TextView)和编辑框(EditText)

文本框(TextView)不允许用户编辑文本内容,而编辑框(EditText)允许用户编辑文本内容

2按钮(Button)和按钮(ImageButton)

Button显示文字,ImageButton显示。

为ImageButton指定android:text属性没用,不会显示文字

可以指定android:background为按钮增加背景,但这是固定的

可以指定android:src为按钮增加属性

其实,src才是设置图标,而background只是设置背景。

如果控件的大小是100 100 资源是80 80的话,那么用src,就会居中显示,如果使用background那么就会被拉伸充满控件。

重要的是,background是底层的资源,src是覆盖在background上面的资源,他们可以叠加使用,实现选中的效果。

3单选按钮(RadioButton)和复选框(CheckBox)

多了一个android:checked属性,用于指定初始时是否被选中

4计时器组件Chronometer用法

红色字体表示常用的方法

5图像视图(ImageView)

它支持属性android:scaleType setScaleType(ImageViewScaleType)

matrix(ImageViewScaleTypeMATRIX):使用matrix方式进行

fixXY(ImageViewScaleTypeFIX_XY):对横向纵向独立缩放,会改变纵横比

fitStart(ImageViewScaleTypeFIT_START):保持纵横比,较长的边长与ImageView相应的边长相等,缩放后放在左上角

fitCenter(ImageViewScaleTypeFIT_CENTER):保持纵横比,较长的边长与ImageView相应的边长相等,缩放后放在中央

fitEnd(ImageViewScaleTypeFIT_END):保持纵横比,较长的边长与ImageView相应的边长相等,缩放后放在右下角

center(ImageViewScaleTypeCENTER):放中间,不缩放

centerCrop(ImageViewScaleTypeCENTER_CROP):保持纵横比,使能完全覆盖ImageView

centerInside(ImageViewScaleTypeCENTER_INSIDE):保持纵横比,使ImageView能完全显示

6spinner的功能和用法

如果可以确定spinner里面的列表项,那么直接在/res/layout/mainxml里面指定

然后在/res/value/stringxml里面指定

如果不确定里面的列表项,那么必须要提供一个Adapter,这个Adapter负责决定Spinner列表每项的内容

7日期、时间选择器(DatePicker和TimePicker)

8自动完成文本框(AutoCompleteTextView)

比普通文本框多了一个功能:当用户输入一定字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单后,组件会按用户选择自动填写该文本框

使用该组件很简单,只要为它设置一个Adapter,该Adapter封装了AutoCompleteTextView预设的提示文本

9进度条(ProgressBar)

通过style属性可以为ProgressBar指定风格。该属性可以有如下的属性值:

1@android:style/WidgetProgressBarHorizontal 水平进度条

2@android:style/WidgetProgressBarInverse 不断跳跃、旋转画面的进度条

3@android:style/WidgetProgressBarLarge 大进度条

4@android:style/WidgetProgressBarLargeInverse不断跳跃、旋转画面的大进度条

5@android:style/WidgetProgressBarSmall 小进度条

6@android:style/WidgetProgressBarSmallInverse不断跳跃、旋转画面的小进度条

ProgressBar提供如下方法来 *** 作进度

1setProgress(int) 设置进度的完成百分比

2incrementProgressBy(int) 设置进度条的增加或减少。参数为正增加,参数为负减少

10选项卡(TabHost)

TabHost仅仅只是一个简单的容器,它提供如下方法

1newTabSpec(String tag) 创建选项卡

2addTab(TabHostTabSpec tabSpec) 添加选项卡

使用TabHost的一般步骤为:

• A 在界面中定义TabHost组件,并为该组件定义该选项卡的内容

• B Activity应该继承TabActivity

• C 调用TabActivity的getTabHost()来获取TabHost对象

• D 通过TabHost对象的方法来创建选项卡、添加选项卡

选项卡主要由TabHost、TabWidget、FrameLayout3个组件组成,三者缺一不可,想象一下选项卡的特点,多个卡重叠在一起,所以用FrameLayout即帧布局是必要的。另外需要注意的是TabHost、TabWidget、FrameLayout三个组件的android:id必须使用系统默认的名称,而不能自己随意定义,否则会出错。

11图像切换器(ImageSwitcher)

12网格视图(GridView)

使用GridView一般指定numColumn大于1,否则取默认值为1那么GridView就变成了ListView

属性android:stretchMode支持如下属性

1none 不拉伸

2spacingWidth 仅拉伸元素之间的间距

3spacingWidthUniform 表格、元素之间的间距一起拉伸

4columnWidth 仅拉伸表格

13画廊视图(Gallery)(现在已经被弃用了,不过还是列出来吧)

Gallery用法很简单——为它提供一个内容Adapter,该Adapter的getView方法所返回的View可作为Gallery的列表项。可以通过OnItemSelectedListener监听选择项的改变

14列表试图(ListView和ListActivity)

1创建ListView由两种方式:

2直接使用ListView进行创建

让Activity继承ListActivity(继承了ListActivity的类无需调用setContentView()来显示页面,可以直接设置适配器)

一旦获得ListView后,就要创建显示的列表项了。需要借助内容Adapter,内容Adapter负责提供需要显示的列表项

创建ArrayAdapter时必须指定一个textViewResourceId,该参数决定每个列表项的外观

1simple_list_item_1 每个列表项是普通的TextView

2simple_list_item_2 每个列表项是普通的TextView(字体略大)

3simple_list_item_checked 每个列表项是已勾选的列表项

4simple_list_item_multiple_choice 每个列表项是带多选框的文本

5simple_list_item_single_choice 每个列表项是带多单选按钮的文本

15使用AlertDialog

1创建AlertDialogBuilder对象,该对象是AlertDialog的创建器

2调用AlertDialogBuilder方法为对话框设置图标、标题等

3调用AlertDialogBuilder的create()方法创建AlertDialog对话框

4调用AlertDialog的show()方法显示对话框

16使用Toast显示提示框

步骤如下:

• 调用Toast构造器或makeText方法创建Toast对象

• 调用Toast方法来设置该消息的对齐方式等

• 调用Toast的show()方法显示出来

• Toast toast = ToastmakeText(ToastTestthis, "信息", ToastLENGTH_LONG)show();

17Notification(一般显示网络状态、电池状态、时间等)

使用Notification发送Notification步骤:

• 调用getSystemService(NOTIFICATION_SERVICE)方法获取系统的Notification Manager服务

• 通过构造器创建一个Notification对象

• 为Notification设置属性

• 通过Notification Manager发送Notification

webview 获取 网页的title

WebView mWebView = (WebView) findViewById(Ridmwebview);

mWebViewsetWebViewClient(new WebViewClient() {

@Override

public void onPageFinished(WebView view, String url) {

ExperimentingActivitythissetTitle(viewgetTitle());

}

});

getTitle

public String getTitle()

Get the title for the current page This is the title of the current page until WebViewClientonReceivedTitle is called

返回:

The title for the current page

下面这篇文章总结的比较全 ,但是 onReceivedTitle()方法在goback()之后无效。

如有转载,请声明出处: 时之沙: >

ListView的优化主要分为以下几点

ListView每次滚动都会调用 getView 方法,所以优化 getVieiw 是重中之重

convertView 是刚刚滚动出可见区域的View的引用,此时它已经不可见,所以应该被复用以减少View的创建

LayoutInflaterinflate(resourceId,View) 这个方法是用来通过pull的解析方式从XML文件生成一个View对象的,如果有成千上万

个Viwe都要去解析XML生成View,会非常消耗性能

viewHolder

findViewById这个方法是从ViewGroup的子View里面循环遍历找id与给出的ID相同的子View,还是比较耗时的,

加载顺序,应该为, 内存--本地--网络

主要写一下缓存到内存中的方法,

据说以前使用HashMap<String,SoftReference<BitMap>>的方法缓存,不过不好用了,现在大多都用

LruCache,

从网络加载或者本地加载都比较耗时,加上Android16ms的刷新UI频率,会造成卡顿

从内存获取速度相对较快,以上只是放入内存的方法,当然压缩什么的就没有写,只是简单介绍存入内存的原理

很多情况下ListView需要加载显示网络,我们尽量不要在ListView滑动的时候加载网络,

那样会使ListView变得卡顿所以我们要监听ListView的状态,如果ListView滑动( SCROLL_STATE_TOUCH_SCROLL )

或者猛滑( SCROLL_STATE_FLING )的时候,停止加载,否则加载

从用户的角度讲,快速滑动的时候,用户不需要看到当前内容

有时候出了 onItemClickListener 之外我们还会用到Item上其他位置的点击事件

一般情况下我们是在getView方法中,一个一个设置,就像

这样每个都设置了一个新的OnClickListener对象,不太好

直接在ViewHolder中设置一个position,然后viewHolder implements OnClickListener

然后再getView中设置的时候设置自己就行了

总之,宗旨就是少在getView里面new对象,做耗时 *** 作

ClassView是类视图,显示工程里面的类和结构体的成员,还有全局函数与变量等。

ResourceView是资源视图,显示工程里面的各种资源,如图标,对话框,位图,字符串,版本,菜单,这些都属于资源。它处理的是工程中的rc文件。

FileView是文件视图,显示工程中的各种文件列表。如源文件(C,CPP),头文件(H),以及其他一些格式的文件。

以上就是关于android怎么样获取当前activity下所有的textview控件全部的内容,包括:android怎么样获取当前activity下所有的textview控件、图像处理、spring mvc中 Circular view path 问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9582062.html

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

发表评论

登录后才能评论

评论列表(0条)

保存