button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
button.setVisibility(View.GONE);//设置button隐藏不可见
}
});
if(bmp==null){
View.setVisible(View.GONE);
}else{
View.setVisible(View.VISIBLE);
}
希望能帮到你 如果还不会,你可以hi我 随时在线的哟 亲!
第一种点击事件
在xml中设置onclick属性
android:onClick="myOnclick"
第二种;获取Button然后一个一个单独绑定点击事件
"
xmlns:tools=" "
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/btn_imgBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="myOnclick"
android:text="imageButton"
/
android:id="@+id/btn_imgView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="myOnclick"
android:text="imageView"
/
public class MainActivity extends ActionBarActivity {
private Button btnImageBtn;
private Button btnImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnImageBtn = (Button) findViewById(R.id.btn_imgBtn);
btnImageView = (Button) findViewById(R.id.btn_imgView);
btnImageBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点击ImageButton", Toast.LENGTH_SHORT).show();
}
});
btnImageView.setOnClickListener(new MyListener());
}
第三种:写一个类(MyListener)实现OnClickListener接口,然后Button在设置onclickListener的时候new一个MyListener
btnImageView.setOnClickListener(new MyListener());
class MyListener implements OnClickListener{
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_imgBtn:
Toast.makeText(MainActivity.this, "点击ImageButton", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_imgView:
Toast.makeText(MainActivity.this, "点击imageView", Toast.LENGTH_SHORT).show();
break;
}
第四种:整个类(MianActivity)实现onclickListener的接口
跳转界面
Intent:意图,用于访问android中的组件
用Intent跳转界面(activity)
第一步:new一个Intent()
Intent intent1 = new Intent(MainActivity.this,ImageButtonActivity.class);
startActivity(intent1);
public void myOnclick(View view){
switch (view.getId()) {
case R.id.btn_imgBtn:
Intent intent1 = new Intent(MainActivity.this,ImageButtonActivity.class);
startActivity(intent1);
break;
case R.id.btn_imgView:
Intent intent2 = new Intent(MainActivity.this,ImageViewActivity.class);
startActivity(intent2);
break;
Intent intent = new Intent(当前的activity,跳转到的acticvity.class);
startActivity(intent);
3.ImageView
展示方式:scaleType:
4.ImageButton:
触摸事件:当控件或者屏幕呗触摸的时候,产生的反应
public boolean onTouchEvent(MotionEvent event) {
}
imageButton:现在已经呗button代替,用于展示图片的按钮。不能显示文字。
imageView
scaleType:图片展示的方式
fitStart:展示在控件的上方
fitCenter:展示在控件的中间
fitEnd;展示在控件的下方
fitXY:不按照比例拉伸
matrix:矩阵模式
matrix可以设置图片旋转,缩放。移动
获取图片的高度和宽度
int h = imgView.getDrawable().getIntrinsicHeight();
int w = imgView.getDrawable().getIntrinsicWidth();
Matrix m = new Matrix();
m.postRotate(45);
m.postRotate(45, w/2, h/2);
imgView.setImageMatrix(m);
移动事件:
按下:MotionEvent.ACTION_DOWN
抬起:MotionEvent.ACTION_UP
移动:MotionEvent.ACTION_MOVE
获取当前的移动事件,
event.getAction()
"
xmlns:tools=" "
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/img_01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ss"
android:scaleType="fitXY"/
android:id="@+id/img_02"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/gl"
android:visibility="gone"
android:scaleType="fitXY"/
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bird"
android:layout_gravity="center"
/
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#ff0000"
android:gravity="center"
android:text="小鸟飞"/
public class MainActivity extends Activity {
private ImageView img01;
private ImageView img02;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img01 = (ImageView) findViewById(R.id.img_01);
img02 = (ImageView) findViewById(R.id.img_02);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
//System.out.println("被摸了");
if(event.getAction()==MotionEvent.ACTION_UP){
Log.v("TAG", "被抬起来");
if(img01.getVisibility()==View.VISIBLE){
img01.setVisibility(View.GONE);
img02.setVisibility(View.VISIBLE);
}else{
img01.setVisibility(View.VISIBLE);
img02.setVisibility(View.GONE);
}
}else if(event.getAction()==MotionEvent.ACTION_DOWN){
Log.v("TAG", "被按下了");
}else if(event.getAction()==MotionEvent.ACTION_MOVE){
Log.v("TAG", "移动了");
}
return super.onTouchEvent(event);
}
Android中设置Button点击监听方法如下:
方法一、
Button Btn1 = (Button)findViewById(R.id.button1);
Btn1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
//点击了Btn1
}
});
方法二、
Button Btn2 = (Button) findViewById(R.id.button2);
Btn2.setOnClickListener(listener);
Button.OnClickListener listener = new Button.OnClickListener(){//创建监听对象
public void onClick(View v){
//点击了Btn2
}
};
方法三、
public void Btn3OnClick(View view){
//点击了Btn23
}
//需要在layout布局对应Button中添加android:onClick="Btn3OnClick",Btn3OnClick可自行命名
Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3"
android:onClick="Btn3OnClick"/
[img]在Android中为组件绑定点击事件的方式可以分为四种,
1、 在xml布局文件中,定义onclick的方式
!—第一步在XML文件中给对应组件添加Onclick属性--
Button
android:id="@+id/submitbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:onClick="buttonClickHandle"
android:layout_alignParentTop="true"
android:text="提交" /
//第二步在对应的Activity中创建一个与onClick属性值相同的方法,并传入一个View参数,当Button被点击时就会回调这个方法。
public void buttonClickHandle(View view) {
Snackbar.make(coordinatorLayout, "你点击了Button", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
另外三种绑定点击事件的方式实际上就是通过组件调用setOnClickListener()的方法,下面我们就来看一下这个方法的源码。
/**
* Register a callback to be invoked when this view is clicked. If this view is not
* clickable, it becomes clickable.
*
* @param l The callback that will run
*
* @see #setClickable(boolean)
*/
public void setOnClickListener(@Nullable OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}
根据源码我们可以看到这个方法中需要一个OnClickListener的对象。下面我们就来看看这个OnClickListener对象是个什么东东。
/**
* Interface definition for a callback to be invoked when a view is clicked.
*/
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
根据源码我们可以看到实际上这个OnClickListener就是一个接口,这个接口中有一个onClick的抽象方法。所以我们在创建这个OnClickListener对象是还需要实现这个抽象方法。这个onClick的抽象方法实际上就是当我们点击按钮后会回调的方法。我们对于点击事件的响应处理就在这个方法中进行。
现在我们已经了解了设置点击事件的setOnClickListener方法,根据我们如何创建这个方法中的OnClickListener对象,我们设置点击事件的方式可以分为如下三种:
1、内部类的形式
a. package com.example.hsport.catalog;
import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator);
// 获取button对象
Button button = (Button) findViewById(R.id.submitbutton);
//创建内部类的实例
MyListener myListener = new MyListener();
//设置button的点击事件,将实现OnClickListener接口的内部类实例传入到setOnClickListener方法中
button.setOnClickListener(myListener);
}
//创建一个内部类实现View.OnClickListener接口,并实现其onClick方法
private class MyListener implements View.OnClickListener {
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "你点击了Button", Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
}
}
2、 匿名内部类的方式
package com.example.hsport.catalog;
import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator);
//获取Button对象
Button button = (Button) findViewById(R.id.submitbutton);
//以创建一个View.OnClickListener的匿名内部类,并实现它的onClick方法
button.setOnClickListener(new View.OnClickListener() {
//在onClick方法中我们就可以设置button的响应代码了
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "你点击了Button",Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
});
}
3、 让主类实现OnClickListener接口,然后再主类实现未实现的方法
package com.example.hsport.catalog;
import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator);
//获取Button对象
Button button = (Button) findViewById(R.id.submitbutton);
//因为我们让MainActivity实现了View.OnClickListener这个接口,所以setOnClickListener方法中的参数直接传入this即可。
button.setOnClickListener(this);
}
//因为MainActivity实现了View.OnClickListener接口,所以在MainActivity中还有要实现该接口中改的onClick方法来处理点击事件。
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "你点击了Button",Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
}
关于如何给组件绑定点击事件,是Android中的基础知识,如果你还想更加详细的了解,推荐你可以去一个叫做秒秒学的教程网站看看,夯实下基础。
本文由作者笔名:Drink丶毒药 于 2023-04-06 10:17:01发表在本站,原创文章,禁止转载,文章内容仅供娱乐参考,不能盲信。
本文链接:https://www.e-8.com.cn/mh-133293.html