Android作业

作业题目:

  1. 综合使用TextView,ImageView,RadioButton控件实现一个图片选择器,通过勾选花朵的名称显示相应的图片,界面如附件图1、图2所示。具体要求如下:

a)使用滚动字幕显示标题“请选择你喜欢的花“

b) 使用RadioGroup 和RadioButton 创建两行三列的单选按钮;

c) 当用户选中某一花名,在页面上显示该种花的图片

  1. 完成如附件图3、图4所示的任务:

a) 图片随着鼠标移动位置,并显示出当前位置的坐标信息。

b) 当用户点击退出按钮,给出提示信息:“再按一次退出程序”。
**


xml的代码为:

标题"please choose a flower"

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Please choose a floweer"
            android:singleLine="true"
            android:marqueeRepeatLimit="marquee_forever"
            android:ellipsize="marquee"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:orientation="vertical"
            android:textSize="20sp"
            android:textColor="@android:color/black" />

显示图片

     <ImageView
            android:id="@+id/hua"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@drawable/mudan"/>
    </LinearLayout>
    ```
**在drawable中导入所需要的图片,然后使用RadioGroup和RadioButton创建两行三列的单选按钮**


       <RadioButton
           android:id="@+id/rb_meihua"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textSize="20sp"
           android:paddingEnd="20dp"
           android:text="梅  花"/>

       <RadioButton
           android:id="@+id/rb_mudan"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textSize="20sp"
           android:paddingEnd="20dp"
           android:text="牡丹花"/>
       <RadioButton
           android:id="@+id/rb_shinanhua"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textSize="20sp"
           android:paddingEnd="20dp"
           android:text="石楠花"/>
      </RadioGroup>
      </LinearLayout>
       <LinearLayout
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:paddingLeft="20dp"
           android:orientation="horizontal">
           <RadioGroup
               android:id="@+id/flower2"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:orientation="horizontal">
               <RadioButton
                   android:id="@+id/rb_xiangyahua"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:paddingEnd="20dp"
                   android:textSize="20sp"
                   android:text="象牙花"/>
               <RadioButton
                   android:id="@+id/rb_xiuqiuhua"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:textSize="20sp"
                   android:paddingEnd="20dp"
                   android:text="绣球花"/>
               <RadioButton
                   android:id="@+id/rb_yulanhua"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:textSize="20sp"
                   android:text="玉兰花"/>

           </RadioGroup>
       </LinearLayout>
``` **这里如果用一个RadioGroup和六个RadioButton来完成就会在一行显示,所以我用两个RadioGroup来实现这个功能** #在activity中如下: *** **定义相关组件:**
 private RadioButton rbmeihua;
    private RadioButton rbmudan;
    private RadioButton rbshinanhua;
    private RadioGroup flower;
    private RadioGroup flower2;
    private RadioButton rbxiuqiuhua;
    private RadioButton rbyulanhua;
    private RadioButton rbxiangyahua;
    private String mNotificationManager;
    private ImageView hua;
    ImageView meihua, mudan, shinanhua, xiuqiuhua, yulanhua, xiangyahua;

获取这些组件findViewId

hua = (ImageView) findViewById(R.id.hua);
        flower = (RadioGroup) findViewById(R.id.flower);
        rbmeihua = (RadioButton) findViewById(R.id.rb_meihua);
        rbmudan = (RadioButton) findViewById(R.id.rb_mudan);
        rbshinanhua = (RadioButton) findViewById(R.id.rb_shinanhua);
        flower2 = (RadioGroup) findViewById(R.id.flower2);
        rbxiuqiuhua = (RadioButton) findViewById(R.id.rb_xiuqiuhua);
        rbyulanhua = (RadioButton) findViewById(R.id.rb_yulanhua);
        rbxiangyahua = (RadioButton) findViewById(R.id.rb_xiangyahua);

根据RadioButton的选中状态获取,并ImageView的setImageResource(R.drawable.XX)设置图片

 rbmeihua.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (rbmeihua.isChecked()) {
                    hua.setImageResource(R.drawable.meihua);
                }

            }
        });

        rbmudan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (rbmudan.isChecked()) {
                    hua.setImageResource(R.drawable.mudan);
                }

            }
        });
        rbshinanhua.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (rbshinanhua.isChecked()) {
                    hua.setImageResource(R.drawable.shinanhua);
                }

            }
        });
        rbxiuqiuhua.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (rbxiuqiuhua.isChecked()) {
                    hua.setImageResource(R.drawable.xiuqiuhua);
                }

            }
        });
        rbyulanhua.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (rbyulanhua.isChecked()) {
                    hua.setImageResource(R.drawable.yulanhua);
                }

            }
        });
        rbxiangyahua.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (rbxiangyahua.isChecked()) {
                    hua.setImageResource(R.drawable.xiangyahua);
                }

            }
        });
    }

运行效果为


随着鼠标移动显示当前位置的坐标信息:

@Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            float x = event.getX();
            float y = event.getY();
            String pos = "x坐标:" + x + ",y坐标:" + y;
            Toast.makeText(this, pos, Toast.LENGTH_LONG).show();
        }
        return super.onTouchEvent(event);
    }

运行效果:


当用户点击退出按钮,给出提示信息:“再按一次退出程序”

 @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
                this.exitApp();
            }
             return true;
             }
         return super.dispatchKeyEvent(event);
        }
    private void exitApp() {
        // 判断2次点击事件时间
        long exitTime = 0;
        if ((System.currentTimeMillis() - exitTime) > 2000) {
            Toast.makeText(Flower2Activity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
             exitTime = System.currentTimeMillis();
             } else {
             finish();
            }
        }

}

运行结果:

posted @ 2017-03-21 15:49  殇情璃雪  阅读(161)  评论(0)    收藏  举报