with viewpager sectionspageradapter practice pageradapter fragments example best android gallery android-viewpager android-pageradapter

viewpager - slider android



(R.dimen.padding_medium) ¿No se puede resolver o no es un campo? (2)

Intento crear una nueva aplicación de estilo de galería desde que la Galería se depreció.

El principal problema que estoy teniendo es que cuando trato de ejecutar el siguiente código no puedo sacudir el error "dimen no se puede resolver o no es un campo". He leído un sitio web y algunas publicaciones aquí que dicen que tiene que ver con la importación de "import com.example.test.R;" Sin embargo, incluso con eso, el error persiste si alguien pudiera ayudar sería increíble.

Gall.java:

package com.example.test; import android.app.Activity; import android.os.Bundle; import android.support.v4.view.ViewPager; public class Gall extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gall); ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); ImgAdapt adapter = new ImgAdapt(this); viewPager.setAdapter(adapter); } }

activity_gall.xml:

<?xml version="1.0" encoding="utf-8"?> <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" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>

ImgAdapt.java:

package com.example.test; 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 ImgAdapt extends PagerAdapter { Context context; private int[] GalImages = new int[] { R.drawable.one, R.drawable.two, R.drawable.three }; ImgAdapt(Context context){ this.context=context; } public int getCount() { return GalImages.length; } public boolean isViewFromObject(View view, Object object) { return view == ((ImageView) object); } 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; } public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager) container).removeView((ImageView) object); } }

Un montón de código, lo siento si es una pregunta vaga, pero el ''dimen'' en la línea

int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);

es la única parte que me está dando un error.


Creo que llegué tarde para responder, pero puede ser útil para futuras referencias.

Debes definir padding_medium en tu archivo res-> values-> dimens.xml.

Por ejemplo:

<dimen name="padding_medium">5dp</dimen>


Me enfrenté a un error similar hoy y la solución fue agregar

import com.yourpackagename.R;