2016-09-13 11 views
0

パラメトリックベクトル描画をAndroidで行うことは可能ですか?たとえば、XMLで複雑な図形を定義し、アプリケーションの状態に応じてプログラムの色や形を変更します。色を変更するJavaクラスのパラメトリックベクトル描画可能にする

+0

'Drawableの#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> 

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

は一例でした。私はアニメーション化されたdrawableで変更可能なvector drawable属性を変更することを意味しました。質問が更新されました。 – fhucho

+0

Idにアクセスすることで、何かを変更することができます。 setcolor関数のように、setshape、setgradientなどの他の属性についても同様に機能があり、状況に応じて変更することができます。これはdrawableのidにアクセスする方法の一例です。 –

関連する問題