2016-09-13 26 views
0

是否可以在Android中繪製參數向量?例如,在XML中定義一個複雜的形狀,然後根據應用程序狀態以編程方式更改其顏色和形狀。使參數向量可繪製

+0

'可繪製#setColorFilter' – pskink

+0

@pksink改變顏色只是一個例子,更新更改顏色的問題 – fhucho

回答

0

在XML

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

     <item android:id="@+id/circle_bg"> 
      <shape android:shape="oval" > 
       <solid android:color="@color/white" /> 

       <corners android:radius="40dp" /> 
      </shape> 
     </item> 


    </layer-list> 

在Java類

view.setBackground(ContextCompat.getDrawable(getActivity(), R.drawable.circle_xml)); 
LayerDrawable bgDrawable = (LayerDrawable) view.getBackground(); 
     final GradientDrawable shape = (GradientDrawable) bgDrawable.findDrawableByLayerId(R.id.circle_bg); 
     shape.setColor(Color.RED); 
+0

只是一個例子。我的意思是改變任何矢量可繪製的屬性,這是可變的動畫可繪製的。更新了問題。 – fhucho

+0

通過訪問Id你可以改變任何事情。就像setcolor函數對於其他屬性(如setshape)同樣存在,setgradient我們有更多的功能,並且可以根據情況進行更改。這只是示例如何訪問drawable的id。 –