要求:javascript
1. 圖片隨着鼠標移動位置,並顯示位置的座標信息 2. 當用戶單機退出按鈕時,給出提示信息:「再按一次退出程序」
——————————————————————————————html
xml文件java
<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事件便可android
java文件代碼:
``` javascript
public class MoveDog extends AppCompatActivity {
private ImageView img_cat;ide
@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中的效果 用了點擊主菜單中的退出菜單彈出對話框的方式ui
代碼以下:
``` javascript
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(menu.NONE,Menu.FIRST+1,1,"退出").setIcon(android.R.drawable.ic_menu_delete);
return true;
}this
@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); }
```code
實現效果:
xml
效果圖:
滾動字幕效果的實現
``` javascript
完整xml文件代碼 ```javascript <?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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.plantphoto.MainActivity" android:weightSum="1"> <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:singleLine="true" android:id="@+id/txt_wz" android:focusable="true" android:focusableInTouchMode="true"/> <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> </LinearLayout>
接下來講點擊事件的執行 在監聽事件是經過在xml佈局文件中對應得Activity中定義一個事件處理方法 public void myClick(View source) source對應事件源(組件) 接着佈局文件中對應要觸發事件的組建,設置一個屬性:onclick = "myclick"來實現 在網上學到的方法在作做業中試了試
參考[](http://www.runoob.com/w3cnote/android-tutorial-listen-event-handle.html)
java文件
```javascript
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); } }
}
```
效果圖: