안드로이드 개발 질문/답변
(글 수 45,052)
다음 그림 처럼 그리드뷰를 생성하며
하단에 해당 그리드뷰에 대한 설명을 넣고싶습니다.
도움 부탁드립니다.
제 생각엔 getView에서 이미지 뷰가 아닌 리니어 레이아웃이나 다른것으로 만든후에 해당 부분을 리턴해주면될것같은데
어떻게해야할지 잘모르겠네요.
현재 getview 소스입니다.
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;
if (convertView == null)
{ // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
//붙이는 그림의 크기 설정
//imageView.setLayoutParams(new GridView.LayoutParams(150, 200));
imageView.setLayoutParams(new GridView.LayoutParams(90, 120));
//크기가 안맞는다면 스케일링, 스케일타입
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//좌상우하 여백
imageView.setPadding(2, 2, 2, 2);
//imageView.setPadding(3, 0, 0, 0);
}
else
{
imageView = (ImageView) convertView;
}
//배열에 인덱스에서 이미지를 가져와 붙임
imageView.setImageResource((position % 2 == 0) ? R.drawable.i_000 : R.drawable.i_001);
return imageView;
} // references to our images
도움 부탁드립니다.
(그림+ 텍스트) 라는 뷰를 새로 만들어야겠네요.
View song_list; //그림+ 텍스트 모양의 뷰를 song_list라는 이름으로 만들예정
if (song_item == null){
LayoutInflater inflater = context.getLayoutInflater(); // 요거하고 다음줄이 핵심이겠네요. 검색하신다면 LayoutInflater 요 키워드.
song_list = inflater.inflate(R.layout.song_list, null); // song_list.xml 를 새로 만들어 그림 밑에 텍스트가 표시되는 레이아웃으로 설정
}else
{
song_list = convertView;
}
/*새로 만든 뷰 song_list의 세팅. song_list.xml에 그림밑에 텍스트가 오도록 새로 하나 만든다.. */
TextView label = (TextView)song_list.findViewById("예:R.id.song_list_text"); //우리가 새로 만들 뷰 sing_list에 적용할 텍스트를 찾음
label.setText("예:카라--Mr.."); //
ImageView icon = (ImageView)song_list.findViewById("예:R.id.icon"); //우리가 새로 만들 뷰 sing_list에서 적용할 이미지뷰를 찾음
icon.setImageResource(R.drawable.icon); //우리가 새로 만들 뷰 sing_list에 그림도 설정
return song_item; //그림+ 텍스트로 만든 뷰를 리턴
요런 흐름이 되겠네요.