2014-11-05 3 views
-2

мне нужно нарисовать простую форму в андроидемне нужно нарисовать простую форму в андроид

Форма должна быть в форме круга, как ImageView Drawable, создать ShapeDrawable использовать холст

Я попробовал следующие, но не работающие

public class MyButton extends ImageButton { 
    private Drawable iconDrawable; 

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

    public MyButton(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public MyButton(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     setImageDrawable(getIconDrawable()); 
    } 

    /** 
    * just draw a simple circle 
    * 
    * @return 
    */ 
    public Drawable getIconDrawable() { 

     Shape shape = new Shape() { 
      @Override public void draw(Canvas canvas, Paint paint) { 
       paint.setColor(Color.RED); 
       paint.setStyle(Paint.Style.FILL); 
       canvas.drawCircle(0, 0, 20, paint); 
      } 
     }; 

     ShapeDrawable drawable = new ShapeDrawable(shape); 

     return drawable; 
    } 
} 
+0

возможно дубликат [Android - рисуем с закругленными углами в верхней части только] (http://stackoverflow.com/questions/8930555/android-drawable-with- закругленные углы-на-самой верхней только) –

ответ

0

ниже код выполнит эту работу. Но вы можете не увидеть его в предварительном просмотре IDE eclipse. Запустите его в устройстве/эмуляторе и проверить результат

<corners 
     android:topLeftRadius="10dp" 
     android:topRightRadius="10dp" 
     android:bottomLeftRadius="0dp" 
     android:bottomRightRadius="0dp"/> 
Смежные вопросы