이것은 안드로이드 애플 리케이션을 배우는 제 3의 날입니다. 현재 android studio를 사용하고 있으며, 내 질문은 ViewPager 클래스와 관련이 있습니다. 아래 코드는 my fragment와 viewPager 클래스입니다.ViewPager에 여러 이미지를 효율적으로 추가하는 방법
ViewPager 및 어댑터 클래스 :
패키지 com.syedabdullah.syed.quran_memorization_application;
import android.content.pm.ActivityInfo; import android.os.Bundle; 가져 오기 android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.Window;
공용 클래스 ViewPagerActivity는 FragmentActivity {
ViewPager myPager; PagerAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Remove Title bar this.requestWindowFeature(Window.FEATURE_NO_TITLE); //force portrait orientation. (No landscape orientation). setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.activity_view_pager); myPager = (ViewPager) findViewById(R.id.pager); myAdapter = new adapterClass(getSupportFragmentManager()); myPager.setAdapter(myAdapter); } /* @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_view_pager, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } */ /*Nested class needed for custom Adapter */ private class adapterClass extends FragmentStatePagerAdapter { int[] images = new int[3]; images[0] = R.drawable._2; String extract = "R.drawable._"; public adapterClass(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { //initialiseArray(images); return viewPageFragment.newInstance(position, images[position]); } @Override public int getCount() { return images.length; } private int[] initialiseArray(int[] array) { for (int i = 2; i <= array.length + 1; i++) { extract += i; array[i-2] = Integer.parseInt(extract); } return array; } }
}
조각 클래스 확장 :
패키지 com.syedabdullah.syed.quran_memorization_application을;
/** * 2014 년 12 월 25 일에 syed 작성. */
import android.os.Bundle; import android.support.v4.app.Fragment; 가져 오기 android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView;
/** * 간단한보기를 포함하는 자리 표시 자 조각. */
공용 클래스 viewPageFragment 현재 내
initialiseArray
이 작동하지 않습니다 조각public viewPageFragment() { } public static viewPageFragment newInstance(int position, int imageId) { viewPageFragment myFrag = new viewPageFragment(); Bundle myBundle = new Bundle(); myBundle.putInt("imagePosition", position); myBundle.putInt("imageId", imageId); myFrag.setArguments(myBundle); return myFrag; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_view_pager, container, false); int imageId = getArguments().getInt("imageId"); ImageView myImageView = (ImageView) rootView.findViewById(R.id.imageView); myImageView.setImageResource(imageId); return rootView; } }
{
을 확장합니다. 배열을 다음과 같이 초기화하려면 :int[] images = {R.drawable._2, R.drawable._3, R.drawable._4};
내 ViewPager에 적절한 이미지가 표시됩니다. 그러나 나는 500 개 이상의 이미지를 가지고 있으며, 이렇게하면 영원히 걸릴 것입니다. 그래서이 이미지를 삽입하는 더 쉬운 방법이 있는지 궁금합니다. 내 모든 이미지의 이름은 점점 커집니다. 그래서 내 첫 번째 이미지의 이름은 ._550까지 또는 ._550까지입니다.
1 질문하기 우리가 할 수있는 경우와 같은 배열
INT [] = {이미지 R.drawable._2, R.drawable._3, R.drawable._4};
그러면 어떻게 작동하지 않습니까?
int [] images = new int [3]; images [0] = R.drawable._2;
누군가 설명해 주시겠습니까? 감사.
유일한 문제는 전체 페이지를 담을 수있는 모든 이미지가 필요하다는 것입니다. 갤러리가 할 수 있다면 몰라요. (안드로이드를 3 일 동안 만 해봤지만 체크 아웃 할 수도 있습니다.) – Abdullah
빠른 질문. 이 이미지 내부의 특정 위치를 개별적으로 정확히 찾아야합니다. Gallery에서도 가능합니까? – Abdullah