单击图像的一部分时的活动togglebutton

时间:2014-07-16 10:38:11

标签: java android eclipse image togglebutton

我目前正在尝试在java中创建一个小应用程序,我遇到了一个小问题。 当我触摸我提供的图像的特定区域时,我需要激活一个togglebutton。 我附上我的网页代码。

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center_horizontal"
    android:orientation="vertical"
    android:padding="4dip" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btnPag1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lights"
            tools:ignore="HardcodedText" >
        </Button>

        <Button
            android:id="@+id/btnPag2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Automation"
            tools:ignore="HardcodedText" >

        </Button>

        <Button
            android:id="@+id/btnPag3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Garden"
            tools:ignore="HardcodedText" />

    </LinearLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="0px"
        android:layout_weight="1" >
    </android.support.v4.view.ViewPager>

</LinearLayout>

page1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:gravity="center_horizontal|center_vertical"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Light 1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <ToggleButton
        android:id="@+id/toggleButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ToggleButton"
        tools:ignore="HardcodedText" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Light 2"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <ToggleButton
        android:id="@+id/toggleButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ToggleButton"
        tools:ignore="HardcodedText" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Light 3"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <ToggleButton
        android:id="@+id/toggleButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ToggleButton"
        tools:ignore="HardcodedText" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Light 4"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <ToggleButton
        android:id="@+id/toggleButton4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ToggleButton"
        tools:ignore="HardcodedText" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/casa"
        tools:ignore="ContentDescription" />

</LinearLayout>

page2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000"
    android:gravity="center_horizontal|center_vertical"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Gate"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activates"
        tools:ignore="HardcodedText" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

page3.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000"
    android:gravity="center_horizontal|center_vertical"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Irrigation"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <ToggleButton
        android:id="@+id/toggleButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ToggleButton"
        tools:ignore="HardcodedText" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

MercuryActivity.java

package it.anddev.bradipao.mercury;
// derived from http://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/

import java.util.List;
import java.util.Vector;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MercuryActivity extends FragmentActivity implements Page1Fragment.OnPageListener {

   // list contains fragments to instantiate in the viewpager
   List<Fragment> fragments = new Vector<Fragment>();
   // page adapter between fragment list and view pager
   private PagerAdapter mPagerAdapter;
   // view pager
   private ViewPager mPager;
   // activity data
   public String p2text,p3text;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

      // creating fragments and adding to list
      fragments.add(Fragment.instantiate(this,Page1Fragment.class.getName()));
      fragments.add(Fragment.instantiate(this,Page2Fragment.class.getName()));
      fragments.add(Fragment.instantiate(this,Page3Fragment.class.getName()));

      // creating adapter and linking to view pager
      this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(),fragments);
      mPager = (ViewPager) super.findViewById(R.id.pager);
      mPager.setAdapter(this.mPagerAdapter);

      // upper bar button listener, allows direct page access
      Button button = (Button)findViewById(R.id.btnPag1);
      button.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {
            mPager.setCurrentItem(0);   // go to first page
         }
      });
      button = (Button)findViewById(R.id.btnPag2);
      button.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {
            mPager.setCurrentItem(1);   // go to second page
         }
      });
      button = (Button)findViewById(R.id.btnPag3);
      button.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {
            mPager.setCurrentItem(2);   // go to third page
         }
      });
   }

   // page 1 fragment listener implementation
   @Override
   public void onPage1(String s) {    

      // set activity data with received string
      p2text = new String(s+" 2");
      p3text = new String(s+" 3");

      // page 2 fragment update
      Page2Fragment f2 = (Page2Fragment) fragments.get(1);
      f2.ptext = p2text;
      // if page 2 view is already created, update
      View v2 = f2.getView();
      if (v2!=null) {

      }

      // page 3 fragment update
      Page3Fragment f3 = (Page3Fragment) fragments.get(2);
      f3.ptext = p3text;
      // if page 3 view is already created, update
      View v3 = f3.getView();
      if (v3!=null) {

      }

   }

}

Page1Fragment.java

package it.anddev.bradipao.mercury;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import android.widget.LinearLayout;


public class Page1Fragment extends Fragment {

   public String ptext="..PAGE 1..";

   // activity listener interface
   private OnPageListener pageListener;
   public interface OnPageListener {
      public void onPage1(String s);
   }

   // onAttach : set activity listener
   @Override
   public void onAttach(Activity activity) {
      super.onAttach(activity);
      // if implemented by activity, set listener
      if(activity instanceof OnPageListener) {
         pageListener = (OnPageListener) activity;
      }
      // else create local listener (code never executed in this example)
      else pageListener = new OnPageListener() {
         @Override
         public void onPage1(String s) {
            Log.d("PAG1","Button event from page 1 : "+s);
         }
      };
   }

   // onCreateView : 
   @Override
   public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

      // fragment not when container null
      if (container == null) {
         return null;
      }
      // inflate view from layout
      View view = (LinearLayout)inflater.inflate(R.layout.page1,container,false);
      // update text

      return view;
   }

   // set text helper function


}

Page2Fragment.java

package it.anddev.bradipao.mercury;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;


public class Page2Fragment extends Fragment {


   public String ptext="..PAGE 2..";

   public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

      // fragment not when container null
      if (container == null) {
         return null;
      }
      // inflate view from layout
      View view = (LinearLayout)inflater.inflate(R.layout.page2,container,false);
      // update text 
      return view;
   }

   // set text helper function

}

Page3Fragment.java

package it.anddev.bradipao.mercury;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;


public class Page3Fragment extends Fragment {

   Button btnWrite;
   public String ptext="..PAGE 3..";

   public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

      // fragment not when container null
      if (container == null) {
         return null;
      }
      // inflate view from layout
      View view = (LinearLayout)inflater.inflate(R.layout.page3,container,false);
      // update text


      return view;
   }


}

PageAdapter.java

package it.anddev.bradipao.mercury;

import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class PagerAdapter extends FragmentPagerAdapter {

   // fragments to instantiate in the viewpager
   private List<Fragment> fragments;

   // constructor
   public PagerAdapter(FragmentManager fm,List<Fragment> fragments) {
      super(fm);
      this.fragments = fragments;
   }

   // return access to fragment from position, required override
   @Override
   public Fragment getItem(int position) {
      return this.fragments.get(position);
   }

   // number of fragments in list, required override
   @Override
   public int getCount() {
      return this.fragments.size();
   }

}

0 个答案:

没有答案