ウィジェットや通知バーなどを利用すると関わってくるRemoteViews。
RemoteViews自体のメソッドは少なく制限が多く見えますが
RemoteViews.setInt(int viewId, String methodName, float value)などを使えば
主に使うだろう場所などは結構変更可能だったりします
じゃーどうすれば使えるのという話ですが、TextViewのサイズを変更したいなら
RemoteViews.setFloat(viewId,"setTextSize", size)
とmethodNameに対応するメソッドの名前を入れてそのメソッドの同じ引数をセットしてやればできます。
上記例で言うとApi16以降からsetTextViewTextSizeで動的にテキストサイズを変更できるようになっていますが、
それ以前でも動的にサイズ変更ができるということになります。
ただし、全部が全部使えるわけではありません。
利用Class内(例えばImageViewならImageView.javaの中)のメソッドに「RemotableViewMethod」がついているものが利用できます。
@RemotableViewMethod
@android.view.RemotableViewMethod
って感じについてます。
あと当たり前ですが、該当Apiレベルで利用できないメソッドはそもそも利用できません。
あとRemotableViewMethodがついてても引数が複数あったり引数がないものは使えないっぽいです(そうゆうのは専用のメソッドがそもそもRemoteViewsにあります)。
ちなにに利用Classってどこ調べればいいんだ?という
SDK>sources
内を検索してみると見つかったりします。
あとネット(Git)に公開されてたりします。
ということで、カスタムできない所は確かにあるものの意外とできることは多いので参考になれば~。
あといちいち調べるのも面倒だし時間ができたのでついでにUtilityクラスを作ったので置いときます。