当前位置: 代码迷 >> Android >> 求大神,小弟我想在两个RadioButton控件间连一条线
  详细解决方案

求大神,小弟我想在两个RadioButton控件间连一条线

热度:49   发布时间:2016-04-28 04:51:09.0
求大神,我想在两个RadioButton控件间连一条线
我的想法是这样的,先获得两个控件在屏幕上的位置,然后用自定义View画线。求各位大神,指点迷津,在两个控件间画线要怎么实现。
代码如下:
class Userview extends View {
    

    private Paint uPaint;   
    private Rect user_space;
public play plat_istance;//建立一个play类对象




    private Canvas canvas;
    public Userview(Context context, AttributeSet attrs) {
        super(context, attrs);
        uPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        user_space = new Rect();
        }
    @Override
        public void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            uPaint.setColor(Color.WHITE);
            uPaint.setStrokeWidth(10);
            //canvas.drawRect(0, 0, getWidth(), getHeight(), uPaint);
            canvas.drawLine(plat_istance.location[0],plat_istance.location[1],plat_istance.posetion[0],plat_istance.posetion[1], uPaint);
           //画线函数,里面前四个参数是数组里的值 
            }

}

public class play extends Activity {
public int[] location = new int[2];
public int[] posetion = new int[2];
@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.play_case3);
RelativeLayout cc=(RelativeLayout)findViewById(R.id.relativeLayout1);
RadioButton r1=(RadioButton)findViewById(R.id.radioButton1);
RadioButton r2=(RadioButton)findViewById(R.id.radioButton2);
r1.getLocationInWindow(location);//获得r1的坐标
r2.getLocationInWindow(posetion);//获得r2的坐标

            }

}



------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

linearlayout,垂直方向,一个radiobutton,然后一个view,view的颜色,高度长度,那就是一条线了,然后再来个radiobutton

可是这样的效果是静态的,没办法改变线条,我要的是用代码画线,让线条动态地变化。
再加上动画效果不就可以了,,,

好吧,容我慢慢道来。我要实现的功能是,通过点击按钮来改变线条的连接(和按钮的连接)。比如说,有三个按钮,两个按钮B,C被一条线连接,另一个按钮A孤立,没有连接任何线。然后,点击B或C按钮,即选中这个按钮,然后再点击A按钮,则A与B或C间连线。
你说的在布局文件里添加线条,可以实现这样的功能吗?还是说有没有其他方法。我的想法是通过自定义View来实现画线。不知道,前辈,你是怎么想的?
如果是固定控件,就可以在布局文件里面写好,如果是动态的添加控件,就只能现画

控件是早就添加好的,在布局文件里添加的。但是线条是动态变化的。望前辈指点
提供一种思路,把写的好view画线隐藏起来,如何需要的时候在出现,,,

前辈,能否给个代码雏形,我的思路就是先获得控件坐标,然后根据坐标画线。给个代码雏形吧!,就实现两个控件间的连线。谢谢
额,代码雏形,如果你要画的话还要考虑到不同屏幕分辩率,代码的话百度下吧,,,
------解决方案--------------------
楼主
你代码有一个问题
你把线画在了Userview了 
却没把Userview显示出来

还不如这样写

Boolean btnstate1=false;
Boolean btnstate2=false;
Boolean btnstate3=false;

public void Button1_click(View v){

       btnstate1=true;

       if(btnstate2=true)
       {//按钮1画线连接按钮2}
       else if(btnstate3=true)
       {//按钮2画线连接按钮3}
       else
       {//do nothing}
}

  相关解决方案