更改按钮上的图像资源集,单击片段

时间:2017-03-31 20:15:28

标签: android android-fragments

我在int数组中有一些drawable。是否可以在按钮单击时更改片段中图像视图的图像资源?例如,我有一个方法onclicklistener为按钮benefit_babies ...我想在点击按钮时将图像资源设置为int数组benefitBaby。

InformationTab片段

float

XML文件:

package com.example.aldrinjohn.sample;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/**
 * Created by Aldrin John on 3/20/2017.
 */

public class InformationTab extends Fragment{
    ViewPager viewPager;
    CustomSwipeAdapter adapter;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.informationtab, container, false);
        viewPager = (ViewPager)rootView.findViewById(R.id.view_pager);
        adapter = new CustomSwipeAdapter(this.getActivity());
        viewPager.setAdapter(adapter);


        return rootView;

    }

}

JAVA代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:id="@+id/trivia"
        android:text="BreastFeeding Trivia"/>

    <Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:id="@+id/benefit_babies"
        android:text="Benefits to Babies"/>

    <Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:id="@+id/storing"
        android:text="Storing Breastmilk"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:id="@+id/pump"
            android:text="How to Pump Breastmilk"/>

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:id="@+id/benefit_mother"
            android:text="Benefits to Mothers"/>

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:id="@+id/tips"
            android:text="Tips and Information"/>

    </LinearLayout>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/image_view"/>

</LinearLayout>

2 个答案:

答案 0 :(得分:1)

imageview.setImageResource(id)其中id位于您的int数组中。有关详细信息,请参阅documentation for ImageView。它与您在onClick()处理程序中的代码中的相同。

  

<强> setImageResource

     

void setImageResource(int resId)

     

将drawable设置为此ImageView的内容。

     

这会在UI线程上进行Bitmap读取和解码,这会导致延迟打嗝。如果这是一个问题,请考虑使用setImageDrawable(android.graphics.drawable.Drawable)或setImageBitmap(android.graphics.Bitmap)和BitmapFactory。

答案 1 :(得分:0)

大家好,感谢您的帮助。我通过使用视图页面适配器解决了它。每个onclick按钮我都会更换适配器。谢谢!!