安卓作业3.21

  • 任务1

  • 要求:

        1. 图片随着鼠标移动位置,并显示位置的坐标信息
         2. 当用户单机退出按钮时,给出提示信息:“再按一次退出程序”
    

——————————————————————————————

xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/activity_move_dog"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context="com.example.administrator.move_dog.MoveDog"
   android:weightSum="1">

   <ImageView
       android:id="@+id/img_cat"
       android:layout_width="70dp"
       android:layout_height="67dp"
       android:layout_gravity="center_vertical"
       android:src="@drawable/abc1" />
</LinearLayout>

接下来在java中实现要求的效果,实现要求1只需要重载一个ontouchevent事件即可

java文件代码:

public class MoveDog extends AppCompatActivity {
   private ImageView img_cat;


   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_move_dog);
       img_cat = (ImageView) findViewById(R.id.img_cat);
   }

   @Override
   public boolean onTouchEvent(MotionEvent event) {
       if (event.getAction()==MotionEvent.ACTION_MOVE){
           float x = event.getX();
           float y = event.getY();
           String cat = "x坐标:" + x + "y坐标:" + y;
           Toast.makeText(this,cat,Toast.LENGTH_LONG).show();
           img_cat.setX(x - 50);
           img_cat.setY(y - 200);
       }
       return super.onTouchEvent(event);
   }

————————————————————————
在实现要求2中的效果 用了点击主菜单中的退出菜单弹出对话框的方式

代码如下:

    @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      menu.add(menu.NONE,Menu.FIRST+1,1,"退出").setIcon(android.R.drawable.ic_menu_delete);
      return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()){
          case Menu.FIRST+1:
              AlertDialog.Builder builder = new AlertDialog.Builder(MoveDog.this);
              builder.setMessage("确定关闭程序吗?");

              builder.setPositiveButton("确定",new DialogInterface.OnClickListener(){
                  @Override
                  public void onClick(DialogInterface dialogInterface,int i) {
                      finish();
                  }
              });

              builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
                  @Override
                  public void onClick(DialogInterface dialogInterface,int i){
                      dialogInterface.dismiss();
                  }
              });

              builder.create().show();
              break;
      }
      return super.onOptionsItemSelected(item);
  }

实现效果:


  • 任务2
  • 要求:
  • 1.使用滚动字幕显示标题”please choose a flower you like“
  • 2.使用RadioGroupRadioButton创建两行三列的单选按钮
  • 3.当用户选中一花名时,在页面上显示这种花的图片

效果图:

滚动字幕效果的实现

    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textSize="50sp"
       android:textColor="@color/colorAccent"
       android:text="Please choose a flower you like!"
       android:ellipsize="marquee"    //设置文字显示方式为滚动显示
       android:marqueeRepeatLimit="marquee_forever"   //文字滚动次数为永久
       android:focusable="true"            //获取焦点
       android:focusableInTouchMode="true" 
       android:singleLine="true"      //单行显示
       android:id="@+id/txt_wz" />


完整xml文件代码
```javascript


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="50dp">
</LinearLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="141dp">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/img" />
</RelativeLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="12.42">
</LinearLayout>


<LinearLayout
    android:layout_width="390dp"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioGroup
        android:id="@+id/group_one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center">
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="梅 花  "
            android:textSize="20sp"
            android:id="@+id/rbtn_10"
            android:onClick="myclick"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="石楠花 "
            android:textSize="20sp"
            android:id="@+id/rbtn_11"
            android:onClick="myclick11"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="象牙花"
            android:textSize="20sp"
            android:id="@+id/rbtn_12"
            android:onClick="myclick12"/>
    </RadioGroup>


    <RadioGroup
        android:id="@+id/group_two"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="horizontal">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="绣球花"
            android:textSize="20sp"
            android:id="@+id/rbtn_20"
            android:onClick="myclick20"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="玉兰花"
            android:textSize="20sp"
            android:id="@+id/rbtn_21"
            android:onClick="myclick21"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="牡丹花  "
            android:textSize="20sp"
            android:id="@+id/rbtn_22"
            android:onClick="myclick22"/>
    </RadioGroup>
</LinearLayout>
```

接下来说点击事件的执行 在监听事件是通过在xml布局文件中对应得Activity中定义一个事件处理方法 public void myClick(View source) source对应事件源(组件) 接着布局文件中对应要触发事件的组建,设置一个属性:onclick = "myclick"来实现 在网上学到的方法在做作业中试了试

参考[](http://www.runoob.com/w3cnote/android-tutorial-listen-event-handle.html)

java文件


public class MainActivity extends AppCompatActivity {
  private RadioButton rbtn_10;
  private RadioButton rbtn_11;
  private RadioButton rbtn_12;
  private RadioButton rbtn_20;
  private RadioButton rbtn_21;
  private RadioButton rbtn_22;
  private ImageView img;





  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      rbtn_10=(RadioButton)findViewById(R.id.rbtn_10);
      rbtn_11=(RadioButton)findViewById(R.id.rbtn_11);
      rbtn_12=(RadioButton)findViewById(R.id.rbtn_12);
      rbtn_20=(RadioButton)findViewById(R.id.rbtn_20);
      rbtn_21=(RadioButton)findViewById(R.id.rbtn_21);
      rbtn_22=(RadioButton)findViewById(R.id.rbtn_22);
      img=(ImageView)findViewById(R.id.img);
  	
  	 }

      public void myclick (View source) {
          if (rbtn_10.isChecked()) {
              img.setImageResource(R.drawable.mei);
              rbtn_11.setChecked(false);
              rbtn_12.setChecked(false);
              rbtn_20.setChecked(false);
              rbtn_21.setChecked(false);
              rbtn_22.setChecked(false);


          }
      }
      public void myclick11 (View source){
          if (rbtn_11.isChecked()) {
              img.setImageResource(R.drawable.shi);
              rbtn_10.setChecked(false);
              rbtn_12.setChecked(false);
              rbtn_20.setChecked(false);
              rbtn_21.setChecked(false);
              rbtn_22.setChecked(false);
          }
      }
      public void myclick12 (View source){
          if (rbtn_12.isChecked()) {
          img.setImageResource(R.drawable.xiang);
              rbtn_11.setChecked(false);
              rbtn_10.setChecked(false);
              rbtn_20.setChecked(false);
              rbtn_21.setChecked(false);
              rbtn_22.setChecked(false);

          }

      }
      public void myclick20 (View source){
          if (rbtn_20.isChecked()) {
          img.setImageResource(R.drawable.xiu);
              rbtn_11.setChecked(false);
              rbtn_12.setChecked(false);
              rbtn_10.setChecked(false);
              rbtn_21.setChecked(false);
              rbtn_22.setChecked(false);
          }

      }
      public void myclick21 (View source){
          if (rbtn_21.isChecked()) {
          img.setImageResource(R.drawable.yu);
              rbtn_11.setChecked(false);
              rbtn_12.setChecked(false);
              rbtn_20.setChecked(false);
              rbtn_10.setChecked(false);
              rbtn_22.setChecked(false);
          }

      }
      public void myclick22 (View source){
          if (rbtn_22.isChecked()) {
          img.setImageResource(R.drawable.mu);
              rbtn_11.setChecked(false);
              rbtn_12.setChecked(false);
              rbtn_20.setChecked(false);
              rbtn_21.setChecked(false);
              rbtn_10.setChecked(false);
       }

      }


}

效果图:

posted @ 2017-03-21 14:58  air10086  阅读(115)  评论(0)    收藏  举报