如何设置ImageButton按键按下去后的 特效

如何设置ImageButton按键按下去后的 特效,第1张

android默认的Imagebutton按下去之后没有一点变化,实在让人受不了。这次在重新写摄像头相关的demo时,特意学习了这方面的内容。

第一种方法:

可以用美图秀秀将同一个图片做成不同的灰度/色调效果,保存成同样大小的图片,然后利用htt p:/ /blo g.c sd n.ne t/yanzi1 22 56 27/article/details/7 81 43 92这里设置成点击显示不同色调灰度的同一副图片。

第二种方法:

还是同样的思路,只不过不是在xml文件里,而是在java程序里更改点击显示不同图片,如下:

imageButton.setOnTouchListener(new OnTouchListener(){

@Override

public boolean onTouch(View v, MotionEvent event) {

if(event.getAction() == MotionEvent.ACTION_DOWN){

//更改为按下时的背景图片

v.setBackgroundResource(R.drawable.pressed)

}else if(event.getAction() == MotionEvent.ACTION_UP){

//改为抬起时的图片

v.setBackgroundResource(R.drawable.released)

}

return false

}

})

第三种方法:

这也是我采用的方法。前两种方法在按键多的情况下用起来很不方便,当然不排除个别情况下就需要显示不同的图片。这里用颜色矩阵的方法,只需一张照片,就可以实现效果。且这个效果可以往任何一个ImageButton上绑定。代码如下:

/*为了使图片按钮按下和d起状态不同,采用过滤颜色的方法.按下的时候让图片颜色变淡*/

public class MyOnTouchListener implements OnTouchListener{

public final float[] BT_SELECTED=new float[]

{ 2, 0, 0, 0, 2,

0, 2, 0, 0, 2,

0, 0, 2, 0, 2,

0, 0, 0, 1, 0 }

public final float[] BT_NOT_SELECTED=new float[]

{ 1, 0, 0, 0, 0,

0, 1, 0, 0, 0,

0, 0, 1, 0, 0,

0, 0, 0, 1, 0 }

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

if(event.getAction() == MotionEvent.ACTION_DOWN){

v.getBackground().setColorFilter(new ColorMatrixColorFilter(BT_SELECTED))

v.setBackgroundDrawable(v.getBackground())

}

else if(event.getAction() == MotionEvent.ACTION_UP){

v.getBackground().setColorFilter(new ColorMatrixColorFilter(BT_NOT_SELECTED))

v.setBackgroundDrawable(v.getBackground())

}

return false

}

}

可以用我htt p:/ /blog.csdn.net/yanz i1 22 56 27/artic le/details/8 57 775 6这里的图片测试下,ImageButton按下后会有类似风车旋转的动画特效。

在Android开发中,java代码用于将zoom设置为fitxy,从而使类能够继承uibutton、重写button和设置ImageView size来设置imagebutton的大小,具体Java设置代码如下:

<ImageButton

android:id="@+id/btn_delete"

android:layout_width="48dp"

android:layout_height="80dp"

android:scaleType="fitXY"

android:background="@drawable/bg_sms"/>

此外,Android还包括一些C/C++库,这些库可以被Android系统中的不同组件使用,他们通过Android应用程序框架为开发人员提供服务。

扩展资料:

Android应用软件开发语言有C语言等多种语言,但主流的开发语言是java语言,这使得界面的功能有了无尽的变化,增加软件交互的可能性是Java的最大特点。

所有的Android应用程序都是用Java语言编写的,用java语言开发的软件程序库、数据库和运行库是Android移动软件的主要特点。

Java语言是增长最快的编程语言,它具有面向对象的特点,它相对容易理解,它的显著特点是简单,它继承了C++语言的高级本质,它是计算机程序设计语言发展的一大进步,Java语言有一个独立的体系结构,可以在任何系统中任意运行。

参考资料来源:

百度百科-Android

百度百科-软件开发

第一步:指定layout_width与layout_height

在xml文件中设置的imagebutton的宽和高为:

android:layout_width="100dp"

android:layout_height="100dp"

第二步:设置属性android:scaletype

imageview的属性android:scaletype,即 imageview.setscaletype(imageview.scaletype)。android:scaletype是控制图片如何 resized/moved来匹对imageview的size。imageview.scaletype /

android:scaletype值的意义区别:

center /center 按图片的原来size居中显示,当图片长/宽超过view的长/宽,则截取图片的居中部分显示

center_crop / centercrop 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于view的长(宽)

center_inside / centerinside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于view的长/宽

fit_center / fitcenter 把图片按比例扩大/缩小到view的宽度,居中显示

fit_end / fitend 把图片按比例扩大/缩小到view的宽度,显示在view的下部分位置

fit_start / fitstart 把图片按比例扩大/缩小到view的宽度,显示在view的上部分位置

fit_xy / fitxy 把图片 不按比例 扩大/缩小到view的大小显示

 简单的scaletype说明:

center /center 在视图中心显示图片,并且不缩放图片

center_crop / centercrop 按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度

center_inside / centerinside 按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度

fit_center / fitcenter 按比例缩放图片到视图的最小边,居中显示

fit_end / fitend 按比例缩放图片到视图的最小边,显示在视图的下部分位置

fit_start / fitstart 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置

fit_xy / fitxy 把图片不按比例缩放到视图的大小显示

matrix / matrix 用矩阵来绘制

c


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11178099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存