如果您想了解AndroidJava百分比计算和java中计算百分比的知识,那么本篇文章将是您的不二之选。我们将深入剖析AndroidJava百分比计算的各个方面,并为您解答java中计算百分比的疑在这
如果您想了解Android Java百分比计算和java中计算百分比的知识,那么本篇文章将是您的不二之选。我们将深入剖析Android Java百分比计算的各个方面,并为您解答java中计算百分比的疑在这篇文章中,我们将为您介绍Android Java百分比计算的相关知识,同时也会详细的解释java中计算百分比的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- Android Java百分比计算(java中计算百分比)
- Android LinearLayout分频器,但百分比?
- Android P 状态栏显示电量百分比
- Android Studio 控件的百分比布局
- android studio3.5.2百分比布局
Android Java百分比计算(java中计算百分比)
我正在尝试计算一个百分比:
我确定boats npage和numpages大于零(在模拟器的调试变量检查器上检查它),但结果cCom始终为0:
Double cCom=(double)(npage/numpages); tpercent.setText("("+cCom.toString()+"%)");
有任何想法吗?
解决方法
Double cCom = ((double)npage/numpages);
事实上,因为你正在使用一个百分比,你可能想要:
Double cCom = ((double)npage/numpages) * 100;
Android 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仅向前.
解决方法
setDividerHeight()
以编程方式;虽然你必须自己根据百分比来计算大小.
否则,您可以使用resource qualifiers根据特定的break points调整大小;例如h720dp(最小高度为720dp)或w600dp(最小宽度为600dp).
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 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好像不支持百分比布局了,网上找了点资料,尝试写了一下百分比布局,趁还没忘把方法记下来
大概方法就是在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百分比布局等相关知识的信息别忘了在本站进行查找喔。
本文标签: