经常会在项目中用到透明图片,不规则图片,特别是做游戏的时候,需要对图片的透明区域的点击事件做特别处理。
一、先上图片文件transparent.png,图片中间区域与外围区域是非透明的,其它区域是透明的:
二、上布局文件test.xml
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
android:id="@+id/mainLayout">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/transparent"/>
三、上Activity,MainActivity.java
package org.shuxiang.test;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class MainActivity extends Activity
{
private ImageView iv;
private Bitmap bitmap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.test);
iv = (ImageView) findViewById(R.id.ImageView01);
bitmap = ((BitmapDrawable) (iv.getDrawable())).getBitmap();
iv.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("Test", "点击");
}
});
iv.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View arg0, MotionEvent arg1)
{
// TODO Auto-generated method stub
if(bitmap.getPixel((int)(arg1.getX()),((int)arg1.getY()))==)
{
Log.i("Test", "透明区域");
return true;//透明区域返回true
}
return false;
}
});
}
}
原理说明:
获取图片控件的Touch事件,在Touch事件里面判断当前位置是否是透明,如果是透明,则通过return true;方式,不再传递事件给其它监听事件,否则return false继续传递给其它监听事件。
【纯css】左图右文列表,左图外框宽度占一定百分比的正方形,右上下固定,右中自动响应高度。支持不规则图片。
查看演示
Android ImageView 点击更换头像
首先搭建布局 主界面布局:
Android imageView图片按比例缩放
android:scaleType可控制图片的缩放方式,示例代码如下: http://202.121.199.212/JudgeOnline/problem.php?cid=1079&pid=23 分析: ...
nisi 脚本示例
只是简单的copy文件和添加快捷方式,安装和卸载时对程序是否运行进行检测 ;-------------------------------- ;Include Modern UI !include & ...
Feature Pyramid Networks for Object Detection比较FPN、UNet、Conv-Deconv
https://vitalab.github.io/deep-learning/2017/04/04/feature-pyramid-network.html Feature Pyramid Netw ...
安卓测试工具uiautomator无法打开失败报错解决方案
我们在测试过程中经常会遇到uiautomator报错,识别不了 先用 adb shell ps |grep uiautomator 查看这个进程,一般性都是因为已经有一个进程占用引起的. 所以是被占用 ...
SpringMvc的Controller singleton synchronized
SpringMvc的controller是singleton的(非线程安全的) - lvyuanj的专栏 - CSDN博客 https://blog.csdn.net/lvyuanj/article/ ...
mysql 导入大文件
set global max_allowed_packet=1000000000; set global net_buffer_length=1000000;