안드로이드 개발 질문/답변
(글 수 45,052)
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.albumlist_basicview);
Intent intent = getIntent();
albumId = intent.getStringExtra("albumid");
dlg = new LoadingDialog(this);
dlg.show();
mClient = new MyStoryClient(getApplicationContext());
mClient.open(mListener);
mDetector = new GestureDetector(this, mGestureListener);
mDetector.setIsLongpressEnabled(false);
//////////////////////// #응답받은 전체 컨텐츠 "ArrayList<ArrayList<MyItem>>" ////////////////////////////////
arItemList = new ArrayList<ArrayList<ContentsItem>>();
//AlbumList_AlbumAdd로부터 넘어온 앨범이름 표시
//String albumName = getIntent().getStringExtra("album_name");
userAlbumName = (TextView)findViewById(R.id.txt_user_album_name);
//userAlbumName.setText(albumName);
//AlbumList_AlbumAdd로부터 넘어온 선택한 아이템 정보
/*ArrayList<String> selectedItem = getIntent().getStringArrayListExtra("selectedItem");
for (int i = 0; i < selectedItem.size(); i++)
{
// Log.i("Selected Contents", Integer.toString(i) + "번째 : " + aaa.get(i).toString());
if (selectedItem.get(i).toString().equals("true"))
{
ArrayList<ContentsItem> arItemNew = new ArrayList<ContentsItem>();
arItemNew.add(arItem.get(i));
arItemList.add(arItemNew);
}
}
Toast.makeText(this, "등록날짜별 그룹핑 갯수 : " + arItemList.size(), 0).show();*/
//gal1 타임라인 레이아웃
//adapter_framelayout = new BasicView_ContentsAdapter(this, R.layout.basicview_item_framelayout, arItemList, mClient);
//gal2 등록날짜 스크롤 레이아웃 (GUI가이드에서 삭제된 상태 : basicvew.xml 에서 invisible)
//BasicView_ContentsAdapter adapter_regdate = new BasicView_ContentsAdapter(this, R.layout.basicview_item_regdate, arItemList, mClient);
//1. 기본화면
gal1 = (Gallery)findViewById(R.id.albumlist_basicview_gal_timeline1);
gal1.setVisibility(View.VISIBLE);
//gal1.setAdapter(adapter_framelayout);
gal1.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return mDetector.onTouchEvent(event);
}
});
//2. 하단 스크롤 drag시 보일 등록날짜 화면 (GUI가이드에서 삭제된 상태 : basicvew.xml 에서 invisible)
/*gal2 = (Gallery)findViewById(R.id.albumlist_basicview_gal_timeline2);
gal2.setVisibility(View.INVISIBLE);
gal2.setAdapter(adapter_regdate);*/
//3. 하단 스크롤 (GUI가이드에서 삭제된 상태 : basicvew.xml 에서 invisible)
//scrollbar = (FrameLayout)findViewById(R.id.albumlist_basicview_scrollbar);
//3.1 하단 스크롤 날짜 (GUI가이드에서 삭제된 상태 : basicvew.xml 에서 invisible)
//startDate = (TextView)findViewById(R.id.albumlist_basicview_start_date);
//endDate = (TextView)findViewById(R.id.albumlist_basicview_end_date);
int endItem = arItemList.size() - 1;
//startDate.setText(arItemList.get(0).get(0).getDate()); //
//endDate.setText(arItemList.get(endItem).get(0).getDate());
//초기 진입시 timeline에서 선택된 아이템
gal1.setSelection(endItem);
//gal2.setSelection(endItem);
gal1.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
//seek.setProgress(position);
//#기울임
anim = new RotateAnimation(movingAngle, 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(1000);
view.startAnimation(anim);
if(position == arItemList.size() - 1)
{
Log.i("HJ", "Here is Last");
String tempDate = arItemList.get(position).get(0).getDate().replace("-", "");
int temp = Integer.valueOf(tempDate);
temp++;
tempDate = Integer.toString(temp);
Log.i("HJ", "TEMPDATE: " + tempDate);
dlg = new LoadingDialog(AlbumList_BasicView.this);
dlg.show();
mClient.getAlbumDetail("suppul70", albumId, "PREV", tempDate, "3", "Y");
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
gal1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
pos = position;
//seek.setProgress(pos);
//컨텐츠 선택시 크기 확장 애니매이션
anim = new ScaleAnimation(
1, 3, 1, 3, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(3000);
gal1.startAnimation(anim);
//컨텐츠 선택시 하단 스크롤바 아래로 숨김 애니매이션
anim = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 1);
anim.setDuration(3000);
//scrollbar.startAnimation(anim);
mHandler.sendEmptyMessageDelayed(1, 2700);
}
});
}
////End OnCreate ////
public void mOnClick(View v) {
switch (v.getId()) {
case R.id.btn_home_basicview : //홈
finish();
break;
case R.id.btn_edit_albumlist_basicview : //편집
Toast.makeText(this, "현재 앨범의 컨텐츠를 편집화면에서 편집합니다..", 0).show();
break;
case R.id.btn_share_albumlist_basicview : //공유
//클립보드
ClipboardManager clipboardManager = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
clipboardManager.setText("www.mystory.com/armybear/123");
//공유 팝업
AlbumList_BasicView_ShareBtn_Popup sharePopup = new AlbumList_BasicView_ShareBtn_Popup(AlbumList_BasicView.this, clipboardManager.getText().toString());
sharePopup.show();
break;
case R.id.btn_thumbnail_albumlist_basicview : //썸네일
Toast.makeText(this, "현재 앨범의 기본보기에서 썸네일 보기로 넘어갑니다.", 0).show();
break;
}
}
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0 :
case 1 :
case 2 :
case 3 :
case 4 :
}
};
};
OnGestureListener mGestureListener = new OnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (Math.abs(velocityX) > VELOCITY) {
if (e1.getX() - e2.getX() > DISTANCE)
{
movingAngle = -20;
rFlag = true;
lFlag = false;
Toast.makeText(AlbumList_BasicView.this, "Left", 0).show();
}
if (e2.getX() - e1.getX() > DISTANCE)
{
movingAngle = 20;
rFlag = false;
lFlag = true;
Toast.makeText(AlbumList_BasicView.this, "Right", 0).show();
}
}
return true;
}
public boolean onDown(MotionEvent e) {
return false;
}
public void onLongPress(MotionEvent e) {
}
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
movingAngle = 0;
rFlag = false;
lFlag = false;
return false;
}
public void onShowPress(MotionEvent e) {
}
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
};
}
오늘 왠종일 이거땜에 시간보내고있네요.. 어려운부분도 아닌데..ㅠ
혹시몰라 서버연동부분빼고 모두 올립니다.
스크롤뷰에서 옆으로 드래그하여 넘기는 방식인데요. 이상하게 사진앨범이 있는쪽은 터치가 동작안하고
앨범의 윗부분과 아랫부분에서만 터치이벤트가 발생합니다.
안드로이드고수님들의 지적 부탁드립니다.




코드 보기가 어렵네요.
사진앨범이라고 하면 ImageView, GallaryView 같은거 쓰시나보네요.
Layout xml 파일에
android:focusable="true"
android:clickable="true"
이렇게 설정 해보세요.