Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中添加具有重叠透明背景的图像按钮?_Java_Android_Android Layout - Fatal编程技术网

Java 如何在android中添加具有重叠透明背景的图像按钮?

Java 如何在android中添加具有重叠透明背景的图像按钮?,java,android,android-layout,Java,Android,Android Layout,这是我的设计,圆圈的三个部分是三个按钮。如何选择特定的按钮 到目前为止,我所做的是: 把这三部分剪下来 这三个部分分别设置为图像视图 将它们整合成如下所示的圆形(中心圆形部分是另一个按钮) 但是按钮后面的透明矩形区域重叠,我无法选择所需的按钮 我的代码如下: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView

这是我的设计,圆圈的三个部分是三个按钮。如何选择特定的按钮

到目前为止,我所做的是:

  • 把这三部分剪下来
  • 这三个部分分别设置为图像视图
  • 将它们整合成如下所示的圆形(中心圆形部分是另一个按钮)
但是按钮后面的透明矩形区域重叠,我无法选择所需的按钮

我的代码如下:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.butto);
    gp = new GPSTracker(ButtonhomeActivity.this);
    final NotificationManager mgr=
            (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    Log.e("dbfhb","fcxcv");
    se = (ImageView) findViewById(R.id.imageView4);
    ca = (ImageView) findViewById(R.id.imageView3);
    gr = (ImageView) findViewById(R.id.imageView2);
    ab= (ImageView) findViewById(R.id.imageView1);
    // show location button click event
    se.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_UP){
                Log.e("inside se ontouch","..");
                // Do what you want
                Log.e("inside onclick","...");
                // check if GPS enabled
                db= openOrCreateDatabase("Mydb", MODE_PRIVATE, null);
                if(gp.isGPSEnabled&&x==0){
                    Log.e("onclick gpsss","gpss");
                    la = gp.getLatitude();
                    lo = gp.getLongitude();
                    Log.e("lat",String.valueOf(la));
                    Log.e("lon",String.valueOf(lo));
                    // \n is for new line
                    Toast.makeText(ButtonhomeActivity.this, "Your Location is - \nLat: " + la + "\nLong: " + lo, Toast.LENGTH_LONG).show();
                    a=la + 0.1000;
                    b=la - 0.1000;
                    c1=lo + 0.1000;
                    d=lo - 0.1000;
                    Log.e("a",String.valueOf(a));
                    Log.e("b",String.valueOf(b));
                    Log.e("c1",String.valueOf(c1));
                    Log.e("d",String.valueOf(d));
                    Log.e("k ",String.valueOf(k));
                    // lon[]={77,66,55,77.5,77.012};
                    // lat[]={13.02,12,11,13.0456,22};
                    // for(int i=0;i<k;i++)
                    // {
                    // if((lat[i]>b) && (lat[i]<a) && (lon[i]>d) && (lon[i]<c1))
                    // {
                    try{
                        Log.e("before query","......");
                        //c = db.rawQuery("SELECT path FROM mytable where longi = '" +lon[i] + "' and lati = '" +lat[i] + "'" , null);
                        // c = db.rawQuery("SELECT path FROM mytable where longi > '"+d+ "'", null);
                        c=db.rawQuery("SELECT path,filename FROM mytable WHERE ( longi BETWEEN '"+d+"' AND '"+c1+"' ) AND ( lati BETWEEN '"+b+"' AND "+a+"') ",null);
                        c.moveToFirst();
                        Log.e("after query","..");
                        do{
                            String pat=c.getString(0);
                            String fil=c.getString(1);
                            path1[z]=pat;
                            fil1[z]=fil;
                            Log.e("path["+String.valueOf(z)+"]",path1[z]);
                            Log.e("fil1["+String.valueOf(z)+"]",fil1[z]);
                            z++;
                            // c.moveToNext();
                        }while(c.moveToNext());
                    }
                    catch(Exception e){Log.e("inside catch", "I shouldn't be here");}
                    Log.e(String.valueOf(z),"sizee of z");
                    // Toast.makeText(ButtonhomeActivity.this, "M in!",Toast.LENGTH_SHORT).show();
                    // Toast.makeText(NotificationAlert.this, "latitude "+la,Toast.LENGTH_SHORT).show();
                    // Toast.makeText(NotificationAlert.this, "longitude "+lo,Toast.LENGTH_SHORT).show();
                    if(path1[0]!=null){
                        Notification note=new Notification(R.drawable.ic_launcher,
                                                           "Notification!",
                                                           System.currentTimeMillis());
                        Intent i=new Intent(getBaseContext(), NotifyMessage.class);
                        i.putExtra("filepath", path1);
                        i.putExtra("filename",fil1);
                        i.putExtra("size",z);
                        // This pending intent will open after notification click
                        PendingIntent in = PendingIntent.getActivity(getBaseContext(), 0, i,PendingIntent.FLAG_ONE_SHOT);
                        note.setLatestEventInfo(getBaseContext(), "Memories Found!!!",
                                                "Click to view", in);
                        //After uncomment this line you will see number of notification arrived
                        //note.number=2;
                        mgr.notify(NOTIFY_ME_ID, note);
                    }
                    else
                    {
                        // Toast.makeText(ButtonhomeActivity.this, "m out!",Toast.LENGTH_SHORT).show();
                        // Toast.makeText(ButtonhomeActivity.this, "You are here for the first time!",Toast.LENGTH_SHORT).show();
                        Notification note=new Notification(R.drawable.ic_launcher,
                                                           "Notification!",
                                                           System.currentTimeMillis());
                        // This pending intent will open after notification click
                        PendingIntent in = PendingIntent.getActivity(getBaseContext(), 0,
                                                                     new Intent(getBaseContext(), ButtonhomeActivity.class),
                                                                     PendingIntent.FLAG_CANCEL_CURRENT);
                        note.setLatestEventInfo(getBaseContext(), "First Visit!!!",
                                                "click to create memories", in);
                        //After uncomment this line you will see number of notification arrived
                        //note.number=2;
                        mgr.notify(NOTIFY_ME_ID, note);
                    }
                }else{
                    gp.showSettingsAlert();
                    x=1;
                }
                return true;
            }
            return false;
        }
    });
    ca.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_UP){
                Log.e("inside ca ontouch","..");
                Log.e(String.valueOf(gp.canGetLocation),"isgpsenabled?...");
                if (gp.isGPSEnabled&&x==0){
                    //Do what you need if enabled...
                    // create class object
                    Intent i=new Intent(ButtonhomeActivity.this,NewMemoryActivity.class);
                    startActivity(i);
                }else{
                    //Do what you need if not enabled...
                    gp.showSettingsAlert();
                    //gp.isGPSEnabled=true;
                }
                return true;
            }
            Log.e("else part", "..");
            return false;
        }
    });
    gr.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_UP){
                Log.e("inside gr ontouch","..");
                // create class object
                Intent i=new Intent(ButtonhomeActivity.this,MainActivity.class);
                startActivity(i);
                return true;
            }
            return false;
        }
    });
    ab.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_UP){
                Log.e("inside ab ontouch","..");
                Intent i=new Intent(ButtonhomeActivity.this,AboutActivity.class);
                startActivity(i);
                return true;
            }
            return false;
        }
    });
}
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局按钮);
gp=新的gp斯特拉克(ButtonhomeActivity.this);
最终通知经理=
(NotificationManager)getSystemService(上下文通知服务);
Log.e(“dbfhb”、“fcxcv”);
se=(ImageView)findViewById(R.id.imageView4);
ca=(ImageView)findViewById(R.id.imageView3);
gr=(ImageView)findViewById(R.id.imageView2);
ab=(ImageView)findViewById(R.id.imageView1);
//显示位置按钮单击事件
se.setOnTouchListener(新的OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
if(event.getAction()==MotionEvent.ACTION\u UP){
Log.e(“位于ontouch内,”);
//做你想做的
Log.e(“内部onclick”,“…”);
//检查是否启用了GPS
db=openOrCreateDatabase(“Mydb”,模式_PRIVATE,空);
if(gp.isGPSEnabled&&x==0){
Log.e(“onclick gpss”、“gpss”);
la=gp.getLatitude();
lo=gp.getLongitude();
Log.e(“lat”,String.valueOf(la));
Log.e(“lon”,String.valueOf(lo));
//\n用于新行
Toast.makeText(ButtonhomeActivity.this,“您的位置是-\nLat:+la+”\nLong:+lo,Toast.LENGTH\u LONG.show();
a=la+0.1000;
b=la-0.1000;
c1=lo+0.1000;
d=lo-0.1000;
Log.e(“a”,String.valueOf(a));
Log.e(“b”,String.valueOf(b));
Log.e(“c1”,String.valueOf(c1));
Log.e(“d”,String.valueOf(d));
Log.e(“k”,String.valueOf(k));
//lon[]={77,66,55,77.5,77.012};
//lat[]={13.02,12,11,13.0456,22};

//对于(inti=0;ib)&&(lat[i]d)&&&(lon[i]请格式化您的代码,我的眼睛因阅读而受伤,但您有足够的声誉发布图像链接,请看这里: