从主Activity或更改视图中绘制圆圈

时间:2014-05-01 00:45:46

标签: java android view android-activity draw

在Android编程方面,我是一个真正的新手。我试图弄清楚如何动态更改视图或从主要活动中绘制圆圈。

我试图改变观点,但我失败了。所以现在我想弄清楚在客户点击一个按钮后我应该如何在我的主要活动中画一个圆圈

private void InitiateGame(String name, String password){
    Log.d("InitiatingGame", "Initiating Game");
    NetworkHandler networkHandler = new NetworkHandler(HOST, PORT);
    PlayerHandler playerHandler = new PlayerHandler();
    MessageHandler messageHandler = new MessageHandler(networkHandler, playerHandler);

    networkHandler.connect(name, password);
    final GameHandler zombieView = new GameHandler(networkHandler, messageHandler, playerHandler);  
    nameField.post(new Runnable() 
    {
        @Override
        public void run() 
        {
            setMainScreenVisibility(View.INVISIBLE);
        }
    });
    initiated = true;
}

这是在客户端点击" Connect"之后调用的代码。按钮。所以他会实现一些你不需要知道他们在做什么的课程。然后他连接到服务器。所以我不想做出新的意图。

什么是更好的。创建一个新的视图类,扩展我设置为contentview的视图?(如果是这样。怎么样?)或者我应该尝试从这个主要活动中绘制这些圆圈? (还怎么样?)

2 个答案:

答案 0 :(得分:0)

要使用paint绘制圆圈,您需要创建一个像这样的自定义视图

 private class CircleView extends View{
    Paint paint = new Paint();

    public CircleView(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Canvas canvas) {
        paint.setColor(Color.GREEN);
        // set your own position and radius
        canvas.drawCircle(100,200,100,paint);
    }
}

然后,将父布局添加到Activity

RelativeLayout relativeLayout = new RelativeLayout(this);
    relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(
        ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

 setContentView(relativeLayout);

最后,您需要将circle view添加到Parent Layout

 relativeLayout.addView(new CircleView(this));

另一种方法是创建circle as drawable xml并将其设置为ImageView

在drawable /

中创建circle.xml

                     

然后,在布局中设置ImageView中的drawable

 <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/circle"/>

答案 1 :(得分:0)

您可以将circle.xml作为drawable应用于视图。

<!-- circle.xml -->
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid 
   android:color="@color/my_fancy_color"/>
</shape>

<!-- a view in one of your layout files -->
<View 
     android:width="120dp"
     android:height="120dp"
     android:background="@drawable/circle" 
/>

circle.xml可以命名为任何内容并显示在drawables文件夹中。如果更改xml的名称,则使用更改的名称引用它。