溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ViewPage滑動(dòng)加載大圖和點(diǎn)擊關(guān)注效果《IT藍(lán)豹》

發(fā)布時(shí)間:2020-06-04 03:47:52 來(lái)源:網(wǎng)絡(luò) 閱讀:210 作者:楊光成 欄目:移動(dòng)開(kāi)發(fā)

ViewPage滑動(dòng)加載大圖和點(diǎn)擊關(guān)注效果

ViewPage滑動(dòng)加載大圖和點(diǎn)擊關(guān)注效果,viewpager滑動(dòng)頁(yè)面加載多張圖片效果,
和點(diǎn)擊關(guān)注按鈕時(shí)候的狀態(tài)變化效果。
本項(xiàng)目來(lái)源:https://github.com/SerhatSurguvec/Double-Tap-To-Like
大體實(shí)現(xiàn)代碼:ViewPagerAdapter里面主要實(shí)現(xiàn)。

//ViewPager
public class ViewPagerAdapter extends PagerAdapter {
    // Declare Variables
    Context context;
    LayoutInflater inflater;
    int[] p_w_picpaths;

    public ViewPagerAdapter(Context context, int[] p_w_picpaths) {
        this.context = context;
        this.p_w_picpaths = p_w_picpaths;
    }

    @Override
    public int getCount() {
        return 5;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((RelativeLayout) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        ImageView p_w_picpathview;
        final ImageView heartAnim;
        final ImageView likeImg;
        final TextView likeCount;
        TextView whichOfThem;

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = inflater.inflate(R.layout.viewpager_item, container,
                false);


        // Locate the ImageView in viewpager_item.xml
        p_w_picpathview = (ImageView) itemView.findViewById(R.id.p_w_picpath);
        heartAnim = (ImageView) itemView.findViewById(R.id.heart_anim);
        likeImg = (ImageView) itemView.findViewById(R.id.item_comment_like_img);
        likeCount = (TextView) itemView.findViewById(R.id.item_comment_like_count);
        whichOfThem = (TextView) itemView.findViewById(R.id.which);

        whichOfThem.setText((position + 1) + "/" + 5);
        p_w_picpathview.setImageResource(p_w_picpaths[position]);

        final GestureDetector gd = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onDown(MotionEvent e) {
                return true;
            }

            @Override
            public boolean onDoubleTap(MotionEvent e) {

                Animation pulse_fade = AnimationUtils.loadAnimation(context, R.anim.pulse_fade_in);
                pulse_fade.setAnimationListener(new Animation.AnimationListener() {
                    @Override
                    public void onAnimationStart(Animation animation) {
                        heartAnim.setVisibility(View.VISIBLE);
                    }

                    @Override
                    public void onAnimationEnd(Animation animation) {
                        heartAnim.setVisibility(View.GONE);
                    }

                    @Override
                    public void onAnimationRepeat(Animation animation) {

                    }
                });
                heartAnim.startAnimation(pulse_fade);
                likeImg.setImageDrawable(context.getResources().getDrawable(R.drawable.like_active));
                likeCount.setText("3 Likes");
                return true;
            }

            @Override
            public void onLongPress(MotionEvent e) {
                super.onLongPress(e);

            }

            @Override
            public boolean onDoubleTapEvent(MotionEvent e) {
                return true;
            }
        });

        p_w_picpathview.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                return gd.onTouchEvent(event);
            }
        });


        // Add viewpager_item.xml to ViewPager
        (container).addView(itemView);

        return itemView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // Remove viewpager_item.xml from ViewPager
        ((ViewPager) container).removeView((RelativeLayout) object);

    }
}


 

運(yùn)行效果:

  • ViewPage滑動(dòng)加載大圖和點(diǎn)擊關(guān)注效果《IT藍(lán)豹》

相關(guān)代碼

  • ViewPage滑動(dòng)加載大圖和點(diǎn)擊關(guān)注效果

  • AVLoadingIndicatorView各種加載效果

  • MeiTuanRefreshListView高仿美團(tuán)下拉刷新

  • 完整閱讀軟件客戶端app

  • LearnHut_android 學(xué)習(xí)客戶端源碼

  • AutoHomeRefreshListView仿汽車之家下拉刷新

  • PercentageBar自定義動(dòng)態(tài)柱形圖

  • Hide-Music-Player 一個(gè)完整的音樂(lè)播放器

  • FoldableLayout展開(kāi)效果

  • Progre***oundButton下載進(jìn)度按鈕變化動(dòng)畫


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI