Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将滑动功能和文本视图添加到图像幻灯片Android应用程序-漫画_Java_Android_Android Layout_Swipe Gesture - Fatal编程技术网

Java 将滑动功能和文本视图添加到图像幻灯片Android应用程序-漫画

Java 将滑动功能和文本视图添加到图像幻灯片Android应用程序-漫画,java,android,android-layout,swipe-gesture,Java,Android,Android Layout,Swipe Gesture,我需要将滑动功能和文本视图添加到图像幻灯片Android应用程序的实现中——这实际上是一个关于圣堂博斯科生活的漫画,其中包含与故事相关的图像。Gallery widget完成了这项工作,但遗憾的是,现在已被弃用:( 我设法做到了以下几点,只有单击底部的缩略图才能在图像之间导航: -基因运动 当前Java: package org.dbysmumbai.donbosco; import android.app.Activity; import android.content.Context; i

我需要将滑动功能和文本视图添加到图像幻灯片Android应用程序的实现中——这实际上是一个关于圣堂博斯科生活的漫画,其中包含与故事相关的图像。Gallery widget完成了这项工作,但遗憾的是,现在已被弃用:(

我设法做到了以下几点,只有单击底部的缩略图才能在图像之间导航:
-基因运动

当前Java:

package org.dbysmumbai.donbosco;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;

public class MainActivity extends Activity implements
        AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.dbyouth_activity);

        mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
        mSwitcher.setFactory(this);
        mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
        mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));

        Gallery g = (Gallery) findViewById(R.id.gallery);
        g.setAdapter(new ImageAdapter(this));
        g.setOnItemSelectedListener(this);
    }

    public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
        mSwitcher.setImageResource(mImageIds[position]);
    }

    public void onNothingSelected(AdapterView<?> parent) {
    }

    public View makeView() {
        ImageView i = new ImageView(this);
        i.setBackgroundColor(0xFF000000);
        i.setScaleType(ImageView.ScaleType.FIT_CENTER);
        i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT,
                LayoutParams.MATCH_PARENT));
        return i;
    }

    private ImageSwitcher mSwitcher;

    public class ImageAdapter extends BaseAdapter {
        public ImageAdapter(Context c) {
            mContext = c;
        }

        public int getCount() {
            return mThumbIds.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(mContext);

            i.setImageResource(mThumbIds[position]);
            i.setAdjustViewBounds(true);
            i.setLayoutParams(new Gallery.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            i.setBackgroundResource(R.drawable.empty_frame);
            return i;
        }

        private Context mContext;

    }

    private Integer[] mThumbIds = {
            R.drawable.dbyouth000, R.drawable.dbyouth001,
            R.drawable.dbyouth001b, R.drawable.dbyouth002};

    private Integer[] mImageIds = {
            R.drawable.dbyouth000, R.drawable.dbyouth001, R.drawable.dbyouth001b,
            R.drawable.dbyouth002};

}

ImageAdapter.java

package com.manishkpr.viewpagerimagegallery;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class ImageAdapter extends PagerAdapter {
    Context context;
    private int[] GalImages = new int[] {
        R.drawable.one,
        R.drawable.two,
        R.drawable.three
    };
    ImageAdapter(Context context){
        this.context=context;
    }
    @Override
    public int getCount() {
      return GalImages.length;
    }

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
      ImageView imageView = new ImageView(context);
      int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);
      imageView.setPadding(padding, padding, padding, padding);
      imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
      imageView.setImageResource(GalImages[position]);
      ((ViewPager) container).addView(imageView, 0);
      return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
      ((ViewPager) container).removeView((ImageView) object);
    }
  }

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

          <android.support.v4.view.ViewPager
          android:id="@+id/view_pager"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />

</RelativeLayout>

此代码示例没有可用的缩略图,也没有指示刷卡的左/右箭头。我不知道如何实现这些。请提供一些帮助?

您好

  • 你试过android的ViewPager组件吗

    如果没有,请通过。这是一个非常有用的组件。它 解决了你所有的问题

    :

  • 若画廊出了问题,那个就去找安卓的组件

  • 该项目分为三个任务。第一个任务是构建所有图像的网格视图显示。第二个任务是在全屏滑块中显示选定的网格图像。最后在全屏图像中添加收缩缩放功能


    查看教程,可能有助于您实现您的目标

    ViewPager在android中用于滑动功能。这是非常有用的ViewPager库,感谢您提供的很棒的库!它看起来很完美,但我不知道如何在我当前的项目中使用它。请编辑上面粘贴的代码,并向我展示samplecirclesdefault lay出去?请?谢谢你的回答!:)事实上,这个项目非常简单,不需要GridView和收缩缩放功能。是否有可能以某种方式“沉默”该教程,并且只实现当前的基本需求那太棒了谢谢你的回答!:)我尝试过这个,但它没有滑动功能,“上一个”、“下一个”按钮在导航后并不总是刷新自己(有没有办法编辑我当前的代码来实现底部带有文本视图的viewpager?我不太擅长java:(
    package com.manishkpr.viewpagerimagegallery;
    
    import android.content.Context;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    
    public class ImageAdapter extends PagerAdapter {
        Context context;
        private int[] GalImages = new int[] {
            R.drawable.one,
            R.drawable.two,
            R.drawable.three
        };
        ImageAdapter(Context context){
            this.context=context;
        }
        @Override
        public int getCount() {
          return GalImages.length;
        }
    
        @Override
        public boolean isViewFromObject(View view, Object object) {
          return view == ((ImageView) object);
        }
    
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
          ImageView imageView = new ImageView(context);
          int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);
          imageView.setPadding(padding, padding, padding, padding);
          imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
          imageView.setImageResource(GalImages[position]);
          ((ViewPager) container).addView(imageView, 0);
          return imageView;
        }
    
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
          ((ViewPager) container).removeView((ImageView) object);
        }
      }
    
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
              <android.support.v4.view.ViewPager
              android:id="@+id/view_pager"
              android:layout_width="match_parent"
              android:layout_height="match_parent" />
    
    </RelativeLayout>