imageview-android imagebutton背景图片设置

问题描述

android imagebutton背景图片设置

gridview的布局xml有3个imagebutton,属性android:src="@drawable/on",(用background背景图片变形了,只能用src),点击后图像重叠并且变形了,怎么办?
voice.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false"
        android:drawable="@drawable/voice_on_unpress" /> <!-- pressed -->
    <item android:state_pressed="true"
        android:drawable="@drawable/voice_on_do" /> <!-- default -->
    <item android:state_pressed="true"
        android:drawable="@drawable/voice_on_do" /> <!-- default -->
    <item
        android:drawable="@drawable/voice_on_unpress" />
</selector>

voice_press.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false"
        android:drawable="@drawable/voice_on_press" /> <!-- pressed -->
    <item android:state_pressed="true"
        android:drawable="@drawable/voice_on_do" /> <!-- default -->
    <item android:state_pressed="true"
        android:drawable="@drawable/voice_on_do" /> <!-- default -->
    <item
        android:drawable="@drawable/voice_on_press" />
</selector>

activity.java中

 search_voice.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View arg0) {
                           if(flag){
                              Toast.makeText(getApplicationContext(), "语音开启",Toast.LENGTH_SHORT).show();
                              search_voice.setBackgroundResource(R.drawable.vocie_press);
                              flag = false;
                           }
                           else{
                               Toast.makeText(getApplicationContext(), "语音屏蔽",Toast.LENGTH_SHORT).show();
                              search_voice.setBackgroundResource(R.drawable.vocie);
                              flag = true;
                           }

                    }
                });

解决方案

图形变形是你image设置的scaletype引起,这涉及到图片剪裁的问题。如果图片四周是对称可伸缩,用9patch处理一下图片。

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false"
        android:drawable="@drawable/voice_on_unpress" /> <!-- pressed -->
    <item android:state_pressed="true"
        android:drawable="@drawable/voice_on_do" /> <!-- default -->
</selector>

解决方案二:

首先你就是想显示按钮的两个状态, voice on/off.
那么你在click listener中监听事件后直接设置响应的图片而不是selector。原本selector自己就有好几种状态的,在与你的背景肯定会重叠。

解决方法是在search_voice的layout中就把selector设置好,然后在click listener中设置对应的一张图片就好。

解决方案三:

设置scaletype属性或者用9patch处理图片

解决方案四:

刚解决了,啥话不说了上代码。默认背景用android:background="@drawable/voice"

voice.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" >
        <bitmap android:src="@drawable/voice_on_unpress" android:tileMode="disabled" android:gravity="top" />
    </item>
    <item android:state_pressed="true">
        <bitmap android:src="@drawable/voice_on_do" android:tileMode="disabled" android:gravity="top" />
    </item>
</selector>

voice_press.xml

 <item android:state_pressed="true" >
       <bitmap android:src="@drawable/voice_on_do" android:tileMode="disabled" android:gravity="top" />
    </item>
    <item android:state_pressed="false">
       <bitmap android:src="@drawable/voice_on_press" android:tileMode="disabled" android:gravity="top" />
    </item>

activity.java

private static flag ;
flag = FALSE;
 search_voice.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View arg0) {
                         search_voice.setBackgroundResource(0);
                        if(flag){
                            Toast.makeText(getApplicationContext(), "语音开启",Toast.LENGTH_SHORT).show();
                            search_voice.setBackgroundResource(R.drawable.vocie_press);
                            flag = false;
                        }
                        else{
                            Toast.makeText(getApplicationContext(), "语音屏蔽",Toast.LENGTH_SHORT).show();
                            search_voice.setBackgroundResource(R.drawable.vocie);
                            flag = true;
                        }

                    }
                });

实现的没按下按钮时图片A,按着未放是图片B,松开按钮时图片C,如果再按下时图片B,松开时图片A。。。。。。

时间: 2025-01-02 15:39:06

imageview-android imagebutton背景图片设置的相关文章

opengl artoolit-opengl 如何为一个背景图片设置每个像素的深度呢?

问题描述 opengl 如何为一个背景图片设置每个像素的深度呢? 我要显示一个三维模型 例如一个桌面 ,现在这个三维到二维的映射的图片已经有了,在opengl窗口里面用这个图片作为背景 是可以了,现在想要给这个背景加上深度值,来在这上面添加虚拟物体,实现遮挡等功能,求懂的大神指点下 直接用glDrawPixels 写颜色缓存和深度缓存,不知道可不可以?

imageview-关于ImageView快速改变背景图片无法响应点击事件的问题,求大神。。。。。

问题描述 关于ImageView快速改变背景图片无法响应点击事件的问题,求大神..... 我的ImageView是ListView里面的一个控件,我现在快速改变ImageView的背景图片(一秒十次) 此时点击事件就会没有效果(改变我使用的是通知适配器发生改变),请问这是什么现象,有大神告诉我一下吗,或者有其他的解决这种方法的办法吗? 就是ListView里面的一个ImageView当我点击的时候快速改变背景图 解决方案 未在快速改变ImageView的背景图片前,点击是可以用的吗? 如果可以,

WPF背景图片设置

<Window.Background> <ImageBrush ImageSource="../pic/main_backgroud.jpg"/> </Window.Background> 先把图片设为 把图片设为始终赋值,不然就会报错

Word背景图片怎么设置

  生活中经常会有很多IT界的朋友用到word写一些文章,制作一些图片之类的东西.很少有人知道怎样快速给Word文档添加背景图,来使自己的文件看起来更加美观.由于小编现在使用的版本是word2007,相对多数人用的word2010变化不是太大,所以今天小编用word2007版本为各位准备两种Word背景图片设置方法. 方法一: 1.首先打开需要设置背景的Word文档,然后直接从插入中选取照片,如下图. 2.插好之后,单机鼠标右键,选择 "文字环绕-衬于文字下方",并对图片进行相应大小的

html-Html背景图片的设置为什么出不来

问题描述 Html背景图片的设置为什么出不来 为什么html的背景图片路径都设置好了还显示不出来?应该怎么设置一下就可以显示出来了呢?急急急.各位大神帮帮忙. 解决方案 html背景图片设置关于在html中背景图片设置的经验 解决方案二: F12,自己调 解决方案三: 我以前也遇到这个问题,但是我当时是犯了比较蠢的错误就是,url与(之间有空格号,也就是格式是 {background-image:url(../images/css_tutorials/background.jpg); 而我的格式

android 实现圆角图片解决方案_Android

现在我们就来看看怎么样把图片的四角都变成圆形的,为什么要这样做那,如果要是这样界面就会非常的美观,下面我们就来看看代码吧. java代码: 复制代码 代码如下: public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canv

android-Android 页面背景图片加载不出来

问题描述 Android 页面背景图片加载不出来 我有一个登陆页面,之前打开一直是好好的,但是后来在另一个地方打开的话,背景图片就消失了,这是正常的效果,,这是在其他地方打开时出现问题后的样子,谁知道大约出了什么问题吗? 解决方案 图片放在资源文件夹呗?有没有针对分辨率? 解决方案二: 你从xml能找到你的背景图片资源吗?

android xml-菜鸟求问Button背景图片的大小如何设置

问题描述 菜鸟求问Button背景图片的大小如何设置 我想仿微信弄几个按钮的,我在xml文件中设置android:background="@drawable/weixin_1" 结果图片填充整个按钮,如何才能再不改变按钮大小的情况下让图片缩小放置于按钮中间呢 解决方案 android:id="@+id/linearlayout" android:layout_width="40dp" android:layout_height="40d

android ImageView 图片与背景图片的融合

问题描述 各路大神,小辈初学android不久.有个问题是:在父视图中设置了背景图片,然后在ImageView也添加一张图片,结果这个图片的边缘始终存在不需要的白色部分,也就是说图片始终是个矩形,但是我需要的只是其中弯弯曲曲的里边内容.已经尝试过的步骤有:1.通过美图秀秀抠图.2.通过修改jpg为gif格式.3.设置alpha值为0或180.这些都没有效果啊.求指点.在xml设置或者在java代码中获取到ImageView然后操作皆可.谢谢! 解决方案 你需要的是背景透明的切图,使用PS软件可以