2016-12-06 5 views
0

バッテリーパックを使用してバッテリーを追跡し、既存のバッテリーメーターを取り外し、自分のバッテリーメーターを動的に追加する方法を知りたいと思います。私はこれでどのように始めるべきか分かりません。私はいくつかのソースコードを見ましたが、どのように動作するのか理解できませんでした。私は隠れて成功しているバッテリーアイコンが黒く塗られています

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:gravity="center_vertical" android:id="@id/system_icons" android:layout_width="wrap_content" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <com.android.keyguard.AlphaOptimizedLinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" /> 
    <include android:id="@id/msim_hd_voice_on" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="2.0dip" layout="@layout/hd_voice_on" /> 
    <include android:id="@id/msim_signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="2.0dip" layout="@layout/signal_cluster_view_yulong" /> 
    <com.android.systemui.BatteryViewGroup android:id="@id/battery_field" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="4.0dip"> 
     <TextView android:textAppearance="@style/TextAppearance.StatusBar.Text.Style" android:layout_gravity="center_vertical" android:id="@id/battery_level" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="@dimen/battery_level_padding_end" /> 
     <FrameLayout android:layout_gravity="center_vertical" android:id="@id/battery_group" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
      <ImageView android:id="@id/battery_frame" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stat_sys_battery_frame" android:scaleType="center" /> 
      <com.android.systemui.BatteryMeterView android:id="@id/battery" android:layout_width="25.0dip" android:layout_height="12.0dip" /> 
      <ImageView android:id="@id/battery_charge" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="25.0dip" android:src="@drawable/stat_sys_battery_charge_flag" android:scaleType="center" /> 
     </FrameLayout> 
    </com.android.systemui.BatteryViewGroup> 
</LinearLayout> 

:いくつかの例や、基本的なアイデアを提供してくださいは

次は私のROM(CoolUI8)でレイアウトファイルである(また、非常に参考になるリンク)を開始します既存のバッテリーメーター(ID:battery_groupのFrameLayout全体を隠しています)がありますが、カスタムバッテリーメーターを追加したいのですが...このトピックに関する情報がありましたら、ご返信ください:)

答えて

0

WhatsApp's黒く塗りつぶされたモジュールの中に黒色のダニがあります。あなたの問題は私のものと似ていると思います。

これが役立つかどうかはわかりませんが、xposedを開始するのに役立ちます。これは、あなたが受け入れる場合に役立ちます

あなたは、あなたがxposed

https://github.com/suraj0208/WhatsappExtensions

と最後のいくつかの例を見て、私のxposedモジュールコードを参照することができ

@Override 
public void handleInitPackageResources(XC_InitPackageResources.InitPackageResourcesParam initPackageResourcesParam) throws Throwable { 
    if (!initPackageResourcesParam.packageName.equals("com.whatsapp")) 
     return; 

    //create the resource instance for your package 
    modRes = XModuleResources.createInstance(MODULE_PATH, initPackageResourcesParam.res); 

    //example to change xml attribute like dimension 
    initPackageResourcesParam.res.setReplacement("com.whatsapp", "dimen", "tab_height", modRes.fwd(R.dimen.tab_height)); 

    //example to replace icon -- battery icon in your case 
    initPackageResourcesParam.res.setReplacement("com.whatsapp", "drawable", "message_got_read_receipt_from_target", modRes.fwd(R.mipmap.ic_black_tick_conv)); 
    initPackageResourcesParam.res.setReplacement("com.whatsapp", "drawable", "message_got_read_receipt_from_target_onmedia", modRes.fwd(R.mipmap.ic_black_tick_conv)); 
    initPackageResourcesParam.res.setReplacement("com.whatsapp", "drawable", "msg_status_client_read", modRes.fwd(R.mipmap.ic_black_tick_main)); 

} 

IXposedHookInitPackageResourcesインターフェイスからこのメソッドを実装することができます答えとして。左の目盛アイコン:D

関連する問題