Android 프로젝트: 간이판 QQ의 실현

6669 단어 Android 학습

간편한 QQ 구현과 관련된 세 가지 기능 모듈


부트 인터페이스
  • splash인터페이스(정태)1, 역할: 서버 측의 일부 데이터를 초기화하고 초기화에 성공한 후 메인 인터페이스로 이동합니다. 2, 페이지의 지연 이동:
  •      // :   
            new Handler().postDelayed(new Runnable() {
    
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(MyqqStartActivity.this,PagerActivity.class);
                    startActivity(intent);
                    MyqqStartActivity.this.finish();
                }
            }, 3000);
  • 슬라이딩 페이지ViewPager(페이지 슬라이딩의 마지막 페이지는 하나의 단추로 클릭하면 애니메이션 효과가 있고 애니메이션이 끝난 후에 메인 인터페이스로 이동) 1. 용기 컨트롤러에서 여러 개의 Layout을 방지하고 슬라이딩 페이지를 뒤집을 수 있다.실현의 대체적인 절차는 ①, 모든 현실적인 페이지를 하나의 집합에 불러오는 ②, 새로운 페이지를 슬라이딩하는 ③, 낡은 페이지를 슬라이딩해서 삭제하는 코드는 xml 정의ViewPager이다
  •     .support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        .support.v4.view.ViewPager

    마스터 코드의 구현:
    mViewPager = (ViewPager) findViewById(R.id.viewpager);
    
            LayoutInflater mLi = LayoutInflater.from(this);
            View view1 = mLi.inflate(R.layout.viewpager_activity_item1, null);
            View view2 = mLi.inflate(R.layout.viewpager_activity_item2, null);
            View view3 = mLi.inflate(R.layout.viewpager_activity_item3, null);
    
            final ArrayList views = new ArrayList();
            views.add(view1);
            views.add(view2);
            views.add(view3);
    
            PagerAdapter mPagerAdapter = new PagerAdapter() {
    
                @Override
                public boolean isViewFromObject(View arg0, Object arg1) {
                    // TODO Auto-generated method stub
                    return arg0 == arg1;
                }
    
                @Override
                public int getCount() {
                    // TODO Auto-generated method stub
                    return views.size();
                }
    
                @Override
                public void destroyItem(View container, int position, Object object) {
                    // TODO Auto-generated method stub
    
                    ((ViewPager) container).removeView(views.get(position));
                }
    
                @Override
                public Object instantiateItem(View container, int position) {
                    // TODO Auto-generated method stub
    
                    ((ViewPager) container).addView(views.get(position));
                    return views.get(position);
                }
            };
    
            mViewPager.setAdapter(mPagerAdapter);
        }

    2. 상태 선택기 3.애니메이션 효과 1, Twened Animations(API로 이루어진) ①, Alpha: 페이드 아웃 ②, Scale: 축소 효과 ③, Rotate: 회전 효과 ④, 이동 효과 2, FrameAnimations는 한 애니메이션을 여러 장의 그림으로 분할한다.그림% 1개의 캡션을 편집했습니다. 그림% 1개의 캡션을 편집했습니다. 그림% 1개의 캡션을 편집했습니다. 그림% 1개의 캡션을 편집했습니다.
    AnimationSet anim = new AnimationSet(true);
    
            // 1、 :Absolute ,Relative to self ,Relative to parent 
            // 2、 x 
            // 3、 x 
            // 4、 x 
            // 5、Y X 
    
            TranslateAnimation mytranslateanim = new TranslateAnimation(
                    Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF,
                    -1f, Animation.RELATIVE_TO_SELF, 0f,
                    Animation.RELATIVE_TO_SELF, 0f);
            //  
            mytranslateanim.setDuration(2000);
            //  
            anim.setStartOffset(800);
            //  AnimationSet 
            anim.addAnimation(mytranslateanim);
            // 
            anim.setFillAfter(true);
            mLeft.startAnimation(anim);

    메인 인터페이스
  • 네트워크 요청 데이터 1,tomcat 서버 2, 비동기 요청 데이터(Handler와 AsyTask 비동기 작업의 차이) 3. Json 데이터의 해석 json 데이터는tomcat의 디렉터리에 저장되어 사용자 정의 방식으로 json 데이터를 작성합니다. 인터넷에 온라인 해석이 있습니다. 축하합니다. 자신의 json 데이터가 맞는지 확인하십시오.자주 사용하는 제3자 해석 프레임워크: 잭슨, Gson, JSON Object
  • 탭 인터페이스(tabHost + Fragment) 탭 호스트는 용기 컨트롤러로 간단하게 이해할 수 있고 각 탭은 하나의 레이아웃에 대응한다. 1, popuwindow 2, 사용자 정의 어댑터 3, 페이지 원각 처리
  • 사이드 슬라이딩 컨트롤의 실현 1, 사용자 정의 View Group ①, 두 파라미터의 구조 실현 방법 ②, onMeasure 재작성 방법 측정 컨트롤 높이 ③, onLayout 재작성 방법 정의 컨트롤 레이아웃 ④, onTouch 이벤트 감청 재작성

  • 실시간 통신
  • 실시간 통신 원리 ①, XMPP ②, openFire ③, Socket
  • 제3자 SDK의 사용 환신 실시간 통신 데모
  • 좋은 웹페이지 즐겨찾기