Android:如何添加按钮和自定义视图

Posted

技术标签:

【中文标题】Android:如何添加按钮和自定义视图【英文标题】:Android: How to add button and a custom view 【发布时间】:2011-04-01 05:49:55 【问题描述】:

我使用下面的 View 来绘制位图并移动它。

public class DrawView extends View 
  private ColorBall ball;
  public DrawView(Context context) 
    super(context);
    setFocusable(true);
    ball = new ColorBall(context,R.drawable.bol_groen, points);
  

  @Override
  protected void onDraw(Canvas canvas)        
        canvas.drawBitmap(ball.getBitmap(), ball.getX(), ball.getY(), null);
  

  public boolean onTouchEvent(MotionEvent event)         
    switch (event.getAction())  
         case MotionEvent.ACTION_DOWN:
               // do stuff...
  

在启动Activity中,使用setContentView(new DrawView(this));设置布局

我想在屏幕上添加一个按钮,当我单击该按钮时,我想添加一个新的位图。如何在此屏幕上添加按钮?

编辑:这是我的 main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_
    android:layout_ >
<Button android:text="Button" 
    android:id="@+id/button1" 
    android:layout_ 
    android:layout_>
</Button>
<com.example.DrawView
 android:layout_ 
    android:layout_ /> 
</LinearLayout>

【问题讨论】:

【参考方案1】:

从 xml 设置活动的布局。放在那里按钮和您的自定义视图(如果您不希望它可见,可以将其设为 GONE)。

但在制作之前,您应该为您的视图再添加一个构造函数

public DrawView(Context context, AttributeSet attrs, int defStyle) 
   super(context, attrs, defStyle);
   setFocusable(true);
   ball = new ColorBall(context,R.drawable.bol_groen, points);

【讨论】:

@rohith 我认为布局还可以。我从来没有在没有覆盖 onMeasure 方法的情况下制作我的自定义视图。尝试使用 Log in draw 方法了解视图的实际大小和绘制的 Bitmap 的坐标。 谢谢。得到它的工作。您能否告诉我如何在单击按钮时添加位图。 你应该为你的按钮设置OnclickListener。在那里,您可以将自定义视图的可见性设置为 VISIBLE/GONE。或者您可以将要绘制的位图传递给您的视图并使其无效。

以上是关于Android:如何添加按钮和自定义视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS标题和自定义按钮未出现在uisplitviewcontroller的详细视图中

需要帮助在Android中使用多个按钮自定义视图

如何在列表适配器中正确使用 ViewHolder 和自定义视图

导航栏高度和自定义按钮

如何删除android中的自定义列表视图项?

iOS 子视图、SRP 和自定义事件