2014-01-28 8 views
0

Я следующий myRec.xmlКак можно программно создать форму в Android

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape> 
      <corners android:radius="1dp" 
       android:bottomRightRadius="0dp" 
       android:bottomLeftRadius="4dp" 
       android:topLeftRadius="4dp" 
       android:topRightRadius="0dp"/> 
      <stroke 
       android:color="@color/my_button_border" 
       android:width="1dp" /> 
      <solid android:color="@android:color/transparent" /> 
     </shape> 
    </item> 
</selector> 

.... и хотел бы создать такую ​​же форму программно, так что я могу свободно менять цвет во время выполнения. Как я могу это достичь? Большое спасибо заранее

ответ

1

Посмотрите на android.graphics.drawable.ShapeDrawable класса и класса подклассы Shape, suchs как:

  • PathShape
  • RectShape
  • ArcShape
  • OvalShape
  • RoundRectShape

ShapeDrawable получает форму в конструкторе, а затем у вас есть много функций для изменения формы. Кроме того, вы можете получить Paint asociated в ShapeDrawable, чтобы вы могли изменять такие вещи, как цвет и так далее.

Кроме того, посмотрите на этот небольшой пример:

http://www.edumobile.org/android/android-tutorial/shape-drawing-example-in-android/

, где вы можете увидеть некоторые Diferent формы, и некоторые видеоэффекты suchs как CornerPathEffect,

+0

Это выглядит многообещающим, но очень много кода для простого изменения цвета. Предположим, что я хочу использовать этот xml и загружать его во время выполнения, но просто хочу изменить цвет во время выполнения, диапазон цвета rgb довольно велик и не может определить где-либо в xml-файле. Есть идеи? Большое спасибо Carlos – beachboy2009

+0

Я не знаю, если я получу то, что вам нужно, но о цвете, вы можете прочитать это http://developer.android.com/guide/topics/resources/drawable-resource.html (поиск '' и ''), а также перейдите по адресу http://developer.android.com/guide/topics/resources/more-resources.html#Color и http://developer.android.com/guide/topics/resources/color. -list-resource.html –

+0

также, это нормально, если вы поместите столько, сколько сможете в xml, так как проще в обслуживании, а также больше MVC –

Смежные вопросы