如何在 Android 中用 Carousel 中的 ImageView 的变化来改变 TextView
How to change TextView with the change of the ImageView in a Carousel in Android
我正在开发一个项目,我在其中使用此 library 创建了一个 Carousel。
我还想在 TextView 中显示图像描述,它应该随着图像的变化而变化。
随着图像的变化,我无法更改 TextView。我应该怎么做才能做到这一点?
我的Java代码:
public class Carousel extends AppCompatActivity {
CarouselView carouselView;
int[] sampleImages = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about_devs);
carouselView = findViewById(R.id.carouselView);
carouselView.setPageCount(sampleImages.length);
carouselView.setImageListener(imageListener);
}
ImageListener imageListener = (position, imageView) -> imageView.setImageResource(sampleImages[position]);
我的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/retro_red"
tools:context=".AboutDevs">
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pragya"
android:text="@string/about_devs"
android:textColor="@color/white"
android:textSize="28sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.074" />
<com.synnapps.carouselview.CarouselView
android:id="@+id/carouselView"
android:layout_width="400dp"
android:layout_height="450dp"
android:layout_marginTop="28dp"
android:layout_marginEnd="4dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView5"
app:layout_constraintVertical_bias="0.235" />
</androidx.constraintlayout.widget.ConstraintLayout>
我知道问这个问题可能很愚蠢,但我想不通。如果有任何帮助,我将不胜感激。
我不确定我是否正确理解了你的问题,但是
ImageListener imageListener = new ImageListener() {
@Override
public void setImageForPosition(int position, ImageView imageView) {
imageView.setImageResource(sampleImages[position]);
}
};
您不能在此方法中添加设置您的 textview 值吗?
从你的 xml 我可以看到你正在使用你提到的 Carousel View Library 但 Carousel View Lib 不支持 Image Listener,所以你最好的选择是改变你的库,或在 activity 中使用 Fragments,详细了解 here
我正在开发一个项目,我在其中使用此 library 创建了一个 Carousel。
我还想在 TextView 中显示图像描述,它应该随着图像的变化而变化。 随着图像的变化,我无法更改 TextView。我应该怎么做才能做到这一点?
我的Java代码:
public class Carousel extends AppCompatActivity {
CarouselView carouselView;
int[] sampleImages = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about_devs);
carouselView = findViewById(R.id.carouselView);
carouselView.setPageCount(sampleImages.length);
carouselView.setImageListener(imageListener);
}
ImageListener imageListener = (position, imageView) -> imageView.setImageResource(sampleImages[position]);
我的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/retro_red"
tools:context=".AboutDevs">
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pragya"
android:text="@string/about_devs"
android:textColor="@color/white"
android:textSize="28sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.074" />
<com.synnapps.carouselview.CarouselView
android:id="@+id/carouselView"
android:layout_width="400dp"
android:layout_height="450dp"
android:layout_marginTop="28dp"
android:layout_marginEnd="4dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView5"
app:layout_constraintVertical_bias="0.235" />
</androidx.constraintlayout.widget.ConstraintLayout>
我知道问这个问题可能很愚蠢,但我想不通。如果有任何帮助,我将不胜感激。
我不确定我是否正确理解了你的问题,但是
ImageListener imageListener = new ImageListener() {
@Override
public void setImageForPosition(int position, ImageView imageView) {
imageView.setImageResource(sampleImages[position]);
}
};
您不能在此方法中添加设置您的 textview 值吗?
从你的 xml 我可以看到你正在使用你提到的 Carousel View Library 但 Carousel View Lib 不支持 Image Listener,所以你最好的选择是改变你的库,或在 activity 中使用 Fragments,详细了解 here