GVKun编程网logo

Android Java百分比计算(java中计算百分比)

14

如果您想了解AndroidJava百分比计算和java中计算百分比的知识,那么本篇文章将是您的不二之选。我们将深入剖析AndroidJava百分比计算的各个方面,并为您解答java中计算百分比的疑在这

如果您想了解Android Java百分比计算java中计算百分比的知识,那么本篇文章将是您的不二之选。我们将深入剖析Android Java百分比计算的各个方面,并为您解答java中计算百分比的疑在这篇文章中,我们将为您介绍Android Java百分比计算的相关知识,同时也会详细的解释java中计算百分比的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

Android Java百分比计算(java中计算百分比)

Android Java百分比计算(java中计算百分比)

我无法弄清楚这段代码有什么问题……
我正在尝试计算一个百分比:

我确定boats npage和numpages大于零(在模拟器的调试变量检查器上检查它),但结果cCom始终为0:

Double cCom=(double)(npage/numpages);

tpercent.setText("("+cCom.toString()+"%)");

有任何想法吗?

解决方法

如果npage和numpages都是整数,则Java将(npage / numpages)舍入为整数(即​​0).要使Java使用双精度进行除法,您需要将其中一个数字转换为double,如下所示:
Double cCom = ((double)npage/numpages);

事实上,因为你正在使用一个百分比,你可能想要:

Double cCom = ((double)npage/numpages) * 100;

Android LinearLayout分频器,但百分比?

Android LinearLayout分频器,但百分比?

在happy.xml中我有一个LinearLayout …

<LinearLayout
    android:orientation="vertical"
    android:divider="@drawable/happy_spacer"
    android:showDividers="middle"
    ...>

这是文件happy_spacer.xml …

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <size android:height="8dp" />
    <solid android:color="#90909090" />
</shape>

太棒了,垫片高8dp.

但是你不能在响应的世界里那样工作,间隔的高度必须是它所在页面高度的一定百分比.

(或者,它必须 – 比如说 – 与happy.xml上的其他东西的高度有关.)

什么是Android解决方案?

(重要 – 正如Charuka在下面解释的那样,在这种情况下你几乎肯定想要“px”物理像素,而不是dp或dip.)

对于现代Android,apk 21仅向前.

解决方法

通常,至少根据我的经验,列表项目分隔符是静态高度.在任何情况下,我认为你不能使用XML将它作为屏幕高度的百分比,但你可以使用 setDividerHeight()以编程方式;虽然你必须自己根据百分比来计算大小.

否则,您可以使用resource qualifiers根据特定的break points调整大小;例如h720dp(最小高度为720dp)或w600dp(最小宽度为600dp).

Android P 状态栏显示电量百分比

Android P 状态栏显示电量百分比

状态栏默认显示电量百分比

在Android P 的BatteryMeterView中有集成显示电量百分比相关代码,所以我们只需要将其显示控制条件默认打开就行。

在Settings的Battery的子页面中存在一个Battery percentage Switch选项,该选项就是用来控制电量百分比是否显示在状态栏的,不过默认是关闭的~

通过Battery percentage Switch选项,可以定位到android\packages\apps\Settings\res\xml\power_usage_summary.xml 文件,有如下代码:

<SwitchPreference
        android:key="battery_percentage"
        android:title="@string/battery_percentage"
        android:summary="@string/battery_percentage_description" />

根据布局中的key值,可以查询到该SwitchPreference的控制器类android\packages\apps\Settings\src\com\android\settings\display\BatteryPercentagePreferenceController.java,如下:

public class BatteryPercentagePreferenceController extends AbstractPreferenceController implements
        PreferenceControllerMixin, Preference.OnPreferencechangelistener {

    private static final String KEY_BATTERY_PERCENTAGE = "battery_percentage";

    public BatteryPercentagePreferenceController(Context context) {
        super(context);
    }

    /**
    *isAvailable返回值主要控制在Settings的Battery页面中的
    *Battery percentage Switch选项是否显示出来
    *
    *返回false,Battery percentage选项将会被隐藏掉
    *
    *config_battery_percentage_setting_available默认值为true,
    *在android\frameworks\base\core\res\res\values\config.xml中定义。
    */
    @Override
    public boolean isAvailable() {
        return mContext.getResources()
                .getBoolean(R.bool.config_battery_percentage_setting_available);
    }

    @Override
    public String getPreferenceKey() {
        return KEY_BATTERY_PERCENTAGE;
    }

    /**
    *根据SHOW_BATTERY_PERCENT值,更改Switch显示状态
    *在没有取到SHOW_BATTERY_PERCENT值时候,以0为默认值
    * 1:显示,0:不显示
    */
    @Override
    public void updateState(Preference preference) {
        int setting = Settings.System.getInt(mContext.getContentResolver(),
                SHOW_BATTERY_PERCENT, 0);

        ((SwitchPreference) preference).setChecked(setting == 1);
    }

    /**
    *根据Switch状态改变,从而更改SHOW_BATTERY_PERCENT这个系统值
    */
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        boolean showPercentage = (Boolean) newValue;
        Settings.System.putInt(mContext.getContentResolver(), SHOW_BATTERY_PERCENT,
                showPercentage ? 1 : 0);
        return true;
    }
}

所以要想电量百分比默认显示,只需要找到SHOW_BATTERY_PERCENT默认值设置的地方,然后将其置为1,就默认显示电量百分比了。

一通查找,然后并没有发现SHOW_BATTERY_PERCENT赋初值的地方,所以需要自己手动添加一下:
在android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml末尾添加一项:

<!-- Default to show battery percaent on statusbar -->
<integer name="def_show_battery_percent">1</integer>

然后该默认值写到系统数据库中去:
android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

private void loadSystemSettings(sqliteDatabase db) {
        sqliteStatement stmt = null;
        try {
            stmt = db.compileStatement("INSERT OR IGnorE INTO system(name,value)"
                    + " VALUES(?,?);");
            
            loadBooleanSetting(stmt, Settings.System.NOTIFICATION_LIGHT_pulse,
                    R.bool.def_notification_pulse);

            loadUISoundEffectsSettings(stmt);

            loadIntegerSetting(stmt, Settings.System.POINTER_SPEED,
                    R.integer.def_pointer_speed);

            //为SHOW_BATTERY_PERCENT写入默认值
            loadIntegerSetting(stmt, Settings.System.SHOW_BATTERY_PERCENT, R.integer.def_show_battery_percent);

            /*
             * IMPORTANT: Do not add any more upgrade steps here as the global,
             * secure, and system settings are no longer stored in a database
             * but are kept in memory and persisted to XML.
             *
             * See: SettingsProvider.UpgradeController#onUpgradeLocked
             */
        } finally {
            if (stmt != null) stmt.close();
        }
    }

将SettingsProvider单编,然后push到设备中,将设备恢复出厂设置一下,状态栏显示电量百分比即可生效了!

Android Studio 控件的百分比布局

Android Studio 控件的百分比布局

  • 在安卓开发控件的百分比布局学习中,由于我参考的是第一行代码中的资源,其中的Android studio版本过低,导致的一些错误,花了好长时间来解决它。这里我用的是Android studio 3.5.3

 

 

 首先是依赖的添加,由于我使用的版本相比参考书中的高,Android studio中已经不支持在compile,所以我在模块级build.gradle添加如下的依赖:

 

1 implementation ''androidx.percentlayout:percentlayout:1.0.0''

 

 

 

1 dependencies {
2     implementation ''androidx.percentlayout:percentlayout:1.0.0''
3     implementation fileTree(dir: ''libs'', include: [''*.jar''])
4     implementation ''androidx.appcompat:appcompat:1.1.0''
5     implementation ''androidx.constraintlayout:constraintlayout:1.1.3''
6     testImplementation ''junit:junit:4.12''
7     androidTestImplementation ''androidx.test.ext:junit:1.1.0''
8     androidTestImplementation ''androidx.test.espresso:espresso-core:3.1.1''
9 }

 

 后面就是对layout中的 *.xml 文件进行修改,这里的话百分比布局中分 PercentRelativeLayout 和 PercentFrameLayout 两种我采用的是PercentRelativeLayout,代码如下

 

 1 <androidx.percentlayout.widget.PercentRelativeLayout
 2     xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent">
 6 
 7     <TextView
 8         android:id="@+id/row_one_item_one"
 9         android:layout_width="0dp"
10         android:layout_height="0dp"
11         android:layout_alignParentTop="true"
12         android:background="#7700ff00"
13         android:text="w:70%,h:20%"
14         android:gravity="center"
15         app:layout_heightPercent="20%"
16         app:layout_widthPercent="70%"/>
17 
18     <TextView
19         android:id="@+id/row_one_item_two"
20         android:layout_width="0dp"
21         android:layout_height="0dp"
22         android:layout_toRightOf="@+id/row_one_item_one"
23         android:background="#396190"
24         android:text="w:30%,h:20%"
25         app:layout_heightPercent="20%"
26         android:gravity="center"
27         app:layout_widthPercent="30%"/>
28 
29 
30     <ImageView
31         android:id="@+id/row_two_item_one"
32         android:layout_width="match_parent"
33         android:layout_height="0dp"
34         android:src="@drawable/img_1"
35         android:scaleType="centerCrop"
36         android:layout_below="@+id/row_one_item_one"
37         android:background="#d89695"
38         app:layout_heightPercent="70%"/>
39 
40     <TextView
41         android:layout_width="0dp"
42         android:layout_height="0dp"
43         android:layout_below="@id/row_two_item_one"
44         android:background="#770000ff"
45         android:gravity="center"
46         android:text="width:100%,height:10%"
47         app:layout_heightPercent="10%"
48         app:layout_widthPercent="100%"/>
49 
50 
51 </androidx.percentlayout.widget.PercentRelativeLayout>

 

 

 

 

这里我参照了一位博友的博客

http://blog.csdn.net/lmj623565791/article/details/46695347;

想了解其中的源码分析可以参考这个博客。

 

android studio3.5.2百分比布局

android studio3.5.2百分比布局

我现在用的android Studio3.5.2好像不支持百分比布局了,网上找了点资料,尝试写了一下百分比布局,趁还没忘把方法记下来

大概方法就是在app/build.gradle中的dependencies下添加

implementation 'androidx.percentlayout:percentlayout:1.0.0'

然后尝试重新同步

然后照着第一行代码第二版打了一遍,大概是这样,button4懒得打了,其实差不多是这样

 

 

 

 

参考文章

https://blog.csdn.net/weixin_46258925/article/details/109694039

关于Android Java百分比计算java中计算百分比的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Android LinearLayout分频器,但百分比?、Android P 状态栏显示电量百分比、Android Studio 控件的百分比布局、android studio3.5.2百分比布局等相关知识的信息别忘了在本站进行查找喔。

本文标签: