色付きフィルタを画面に適用するアプリケーションを作成しました。ボタンを押してフィルターの色を変えたいと思っています。 xmlファイルの背景色を変更すると機能しますが、サービスで変更しようとすると色は変わりません。私はエラーは表示されませんが、色は変わりません。私はwindowmanagerでビューを追加しているので、setContentView
で設定しないので、色の変更が適用されない可能性があります。ここに私のサービスのコードがあります。Log.d(TAG,"onCreated");
がlogcatに表示されているため、サービスが呼び出されていることがわかります。ところで、私はbView
の代わりにroot
の色を変更しようとしましたが、私は同じ結果に終わります。ビューの色がプログラムで変更されない
public class ChangeColor extends Service {
public static final String TAG = "ChangeColour";
View mOverlayView;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mOverlayView = inflater.inflate(R.layout.overlay_view, null);
LinearLayout bView = (LinearLayout) mOverlayView.findViewById(R.id.lin);
if (bView != null) {
View root = bView.getRootView();
bView.setBackgroundColor(Color.parseColor("#000000"));
Log.d(TAG, "onCreated");
}
return START_NOT_STICKY;
}
}
ビューを追加しているサービスや活動を見たい場合はmy old postを参照してください。もし誰かが私に知らせる何かを持っている!ありがとう。
これを試してください。 https://stackoverflow.com/questions/11443820/floating-widget-overlay-on-android-launcherこのコンセプトは役に立ちます。 –
コメントは@sarthakGandhiありがとう、私はすでにオーバーレイを作成しましたが、xmlファイルを編集せずにオーバーレイの色を変更する方法があるかどうかを知りたいと思います。とにかく、ありがとう。 –
私はこのような活動を操作することは良い考えだとは思いません。あなたのサービスからビューが内部にあるアクティビティに送信するブロードキャストを使用することも可能です。 – Opiatefuchs