小编Dr.*_*cky的帖子

通过它们的总和来规范化大熊猫数据帧

我有一个包含光谱数据和元数据的熊猫数据帧.列用多索引标记,以便df['wvl']给出光谱并df['meta']给出元数据.在df['wvl']列标签内是光谱仪通道的波长值.

我想要做的是df['wvl']通过该行的总和来规范化每一行,以便将行中的值相加得到总计1.0.

这是数据帧的一行:

df['wvl'].iloc[0]
246.050003     128.533035
246.102005     102.756321
246.156006      99.930775
...    
848.697205     121.313347
848.896423     127.011662
849.095703     123.234168
Name: 0, dtype: float64
Run Code Online (Sandbox Code Playgroud)

但当我做类似的事情时:

df['wvl'].iloc[0]=df['wvl'].iloc[0]/df['wvl'].iloc[0].sum()
Run Code Online (Sandbox Code Playgroud)

什么都没发生!我得到完全相同的值:

df['wvl'].iloc[0]
246.050003     128.533035
246.102005     102.756321
246.156006      99.930775
...    
848.697205     121.313347
848.896423     127.011662
849.095703     123.234168
Name: 0, dtype: float64
Run Code Online (Sandbox Code Playgroud)

如果我创建一个临时变量来保存行,我可以很好地进行规范化:

temp=df['wvl'].iloc[0]

temp=temp/temp.sum()

temp
246.050003    0.000027
246.102005    0.000022
246.156006    0.000021
                ...   
848.697205    0.000026
848.896423    0.000027
849.095703    0.000026
Name: 0, dtype: float64
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试用规范化的临时变量替换数据帧行,则没有任何反应:

df['wvl'].iloc[0]=temp

df['wvl'].iloc[0]
246.050003     128.533035
246.102005     102.756321
246.156006      99.930775 …
Run Code Online (Sandbox Code Playgroud)

python pandas

21
推荐指数
1
解决办法
2万
查看次数

如何为 Jetpack Compose 设置阴影颜色?

抱歉,我几乎不会说英语。

机器翻译:

如何为 Jetpack Compose 设置阴影颜色?

我可以设置阴影,但它们很丑。

Jetpack 编写代码:

Surface(
    modifier = Modifier.width(160.dp).height(56.dp),
    shape = CircleShape,
    elevation = 2.dp,
) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想在下面的代码中创建一个阴影。

SwiftUI 代码:

ZStack {
    ...
}
.shadow(color: Color("button_shadow"), radius: 4, x: 0, y: 2)
.shadow(color: Color("button_shadow"), radius: 20, x: 0, y: 4)
Run Code Online (Sandbox Code Playgroud)

深色模式还需要白色阴影。

在此输入图像描述

在此输入图像描述

您希望能够自定义阴影的颜色。

android-jetpack-compose

16
推荐指数
4
解决办法
3万
查看次数

Android,simple-xml,如何声明元素列表?

我有这个数据结构:

<estates version="0.1">

 <provider name="Foo">
  <estate id="12345678">
   <description>aaa</description>
   <size>300</size>
  </estate>
  <estate id="12345679">
   <description>bbb</description>
   <size>450</size>
  </estate>
 </provider>

 <provider name="Bar">
  <estate id="987654321">
   <description>yyy</description>
   <size>100</size>
  </estate>
  <estate id="987654320">
   <description>zzz</description>
   <size>240</size>
  </estate>
 </provider>

</estates>
Run Code Online (Sandbox Code Playgroud)

我从我的网络服务获得.我想使用simple-xml库来实例化Android"Estates","Provider"和"Estate"类.

Class Estates.java:

@Root
public class Estates {
   @ElementList
   private List<Estate> providers;

   @Attribute
   private String version;
}
Run Code Online (Sandbox Code Playgroud)

Class Estate.java:

public class Estate { 
   @Attribute
   private String id;

   @Element(required=false)
   private String description;

   @Element(required=false)
   private Integers size;
}
Run Code Online (Sandbox Code Playgroud)

即,我使用@ElementList(List&lt;Estate&gt; providers)为提供者,但这样我只能使用一个提供者列表(有两个列表,如我的例子,给出:

"ERROR/com.simplexml.XmlActivity(4266):未捕获的异常:org.simpleframework.xml.core.PersistenceException:元素'providers'在第1行声明了两次").

更多,我无法获得"名称"属性.在实践中,我想我必须解雇" List<Estate> providers"方法,但如何更换它?我应该使用"收藏品"吗?

android simple-framework

12
推荐指数
1
解决办法
7228
查看次数

OnPreferenceChangeListener和OnSharedPreferenceChangeListener之间有什么不同

我想得到一个checkboxpreference的值.哪种方法适合倾听偏好?

OnPreferenceChangeListener和OnSharedPreferenceChangeListener之间有什么区别?

更新 为什么没有调用onSharedPreferenceChanged?

public class Setting extends PreferenceActivity implements
        OnSharedPreferenceChangeListener // ,OnPreferenceChangeListener
{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);// deprecated warning
    }

    @Override
    public void onSharedPreferenceChanged(
            SharedPreferences sharedPreferences, String key) {// DO Stuff
    }

    @Override
    protected void onResume() {
        super.onResume();
        // getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
        // PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
        this.getSharedPreferences("myPrefDB", MODE_PRIVATE)
                .registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        // getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
        // PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this);
        this.getSharedPreferences("myPrefDB", MODE_PRIVATE)
                .unregisterOnSharedPreferenceChangeListener(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-preferences sharedpreferences

11
推荐指数
1
解决办法
8421
查看次数

使用muPDF卷曲/翻转效果

我正在使用muPDF在我的应用程序中阅读PDF.我不喜欢它的默认动画(水平切换).在另一方面,我发现这个辉煌的库对图像的卷曲效果,这个项目的翻转翻盖效果布局.

在curl示例项目中CurlActivity,所有数据都是图像并设置PageProvider如下:

private class PageProvider implements CurlView.PageProvider {

    // Bitmap resources.
    private int[] mBitmapIds = { R.drawable.image1, R.drawable.image2,
            R.drawable.image3, R.drawable.image4};
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

private CurlView mCurlView;
mCurlView = (CurlView) findViewById(R.id.curl);
mCurlView.setPageProvider(new PageProvider());
Run Code Online (Sandbox Code Playgroud)

CurlView从中扩展GLSurfaceView并实现View.OnTouchListener, CurlRenderer.Observer

但是在muPDF中,如果我没有弄错的话,数据就是core对象.core是的例子MuPDFCore.并使用它像这样:

MuPDFReaderView mDocView;
MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView();
mDocView.setAdapter(new MuPDFPageAdapter(this, this, core));
Run Code Online (Sandbox Code Playgroud)

MuPDFReaderView扩展ReaderView,ReaderView扩展AdapterView<Adapter>和实现GestureDetector.OnGestureListener, ScaleGestureDetector.OnScaleGestureListener, Runnable.

我的问题是如何在muPDF中使用curl效果?我应该在哪里逐页获取页面并将其转换为位图?然后将muPDF中适配器的各个方面更改为CurlView.

在翻盖式样本项目中,FlipHorizontalLayoutActivity …

android opengl-es flip page-curl mupdf

11
推荐指数
1
解决办法
2172
查看次数

访问Broadcast Receiver中的应用程序类

我想在广播接收器中检查互联网连接; 并将结果(一个布尔标志)设置为全局变量,以便在整个应用程序中使用它,如果条件; 如果互联网断开连接,请在主活动中将状态图像视图设置为红色图像,如果已连接,则将其设置为绿色.

我跟着这个话题.但getApplication()广播接收器中没有; 而我应该使用getApplicationContext().

另一方面,这个话题:

当在广播接收器中编写代码时,它不是上下文但在其onReceive方法中给出了上下文,您只能调用getApplicationContext().这也意味着您无法保证能够在BroadcastReceiver中访问您的应用程序.

  1. 有什么顾虑?

  2. 如何在广播Receiver中访问我的应用程序类?

  3. 是否有更好的解决方案来检查互联网连接,设置全局变量和更改我的状态imageview?

android broadcastreceiver android-lifecycle android-broadcast

9
推荐指数
1
解决办法
1万
查看次数

如何设置Android中按钮内部矢量绘图的大小?

Android Studio Vector Assets工具将矢量drawable转换为PNG-s用于Lollipop之前的设备,但是我得到了质量非常差的PNG-s,你可以在这里看到:

将矢量转换为PNG

更重要的是,按钮的背景纯色应该是您在左侧看到的浅绿色,但是可绘制的覆盖它:

<item android:state_checked="true"
    android:drawable="@drawable/show">
    <shape android:shape="rectangle">
        <corners android:bottomRightRadius="8dp"/>
        <solid android:color="@color/waveComponentGreen"/>
    </shape>
</item>

<item android:state_checked="false"
    android:drawable="@drawable/hide">
    <shape android:shape="rectangle">
        <corners android:bottomRightRadius="8dp"/>
        <solid android:color="@color/waveComponentGreen"/>
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

drawable的xml是(材质图标的默认值):

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
<path
    android:fillColor="#FF000000"
    android:pathData="M8.59,16.34l4.58,-4.59 -4.58,-4.59L10,5.75l6,6 -6,6z"/>
Run Code Online (Sandbox Code Playgroud)

我还希望通过调整值使图标显得更小,我注意到增加视口尺寸会减小图标,但我不确定我理解为什么.

那么:如何使图标和生成的PNG看起来更小,更少模糊,并在资源文件中设置背景颜色?谢谢.

编辑:我通过将它们组合在一个带有图层列表的单独xml文件中,设法获得带有图标的纯色背景:

<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape android:shape="rectangle">
        <corners android:bottomRightRadius="10dp"/>
        <solid android:color="@color/waveComponentGreen"/>
    </shape>
</item>
<item android:drawable="@drawable/show"
    android:top="10dp"
    android:bottom="10dp"
    android:left="10dp"
    android:right="10dp"
    />
Run Code Online (Sandbox Code Playgroud)

结果是:

一些调整的结果

我设法通过增加矢量drawable的宽度和高度来减少模糊.但是,如果没有android:top|bottom|left|right标签,则可拉伸的按钮会拉伸整个按钮区域.第二个按钮不需要具有背景纯色,因此我没有使用layer-list标签=>无法top|bottom|left|right为drawable 设置边距.
如果我减小按钮大小,我正在做的是减少按钮的可点击区域.

我更新的问题是如何设置按钮/切换按钮/单选按钮内的矢量可绘制的大小而不减小按钮本身的大小?

更新
我无法找到一种方法来调整API 21之前的设备上的矢量可绘制的大小.因此,我将按钮本身缩小,增加了每个按钮的触摸区域.

xml android vector button drawable

9
推荐指数
1
解决办法
1万
查看次数

"自上次项目同步后,gradle文件已更改"消息始终显示

在我的Android Studio中

自上次项目同步以来,gradle文件已更改

即使在完成gradle同步并且我的应用程序未在物理设备或仿真器上部署之后,消息也始终显示!

android-studio android-gradle-plugin

9
推荐指数
2
解决办法
2636
查看次数

如何在Android Studio中解决意外的顶层异常

我有两个项目共享相同的aidl文件.

在第一个项目中,构建在Eclipse和Android Studio中运行完成.

在第二个项目中,构建在Eclipse中运行完成,但在Android Studio中我看到:

Error:[Tracker-PRO-Key] UNEXPECTED TOP-LEVEL EXCEPTION:
Error:[Tracker-PRO-Key] com.android.dx.util.ExceptionWithContext
Error:[Tracker-PRO-Key] at com.android.dx.util.ExceptionWithContext.withContext(ExceptionWithContext.java:46)
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:344)
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134)
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processClass(Main.java:487)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.access$400(Main.java:67)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
Error:[Tracker-PRO-Key] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:135)
Error:[Tracker-PRO-Key] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processOne(Main.java:422)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.run(Main.java:209)
Error:[Tracker-PRO-Key] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error:[Tracker-PRO-Key] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Error:[Tracker-PRO-Key] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Error:[Tracker-PRO-Key] at java.lang.reflect.Method.invoke(Method.java:606)
Error:[Tracker-PRO-Key] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:139)
Error:[Tracker-PRO-Key] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:261)
Error:[Tracker-PRO-Key] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
Error:[Tracker-PRO-Key] Caused by: java.lang.NullPointerException
Error:[Tracker-PRO-Key] at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:87)
Error:[Tracker-PRO-Key] …
Run Code Online (Sandbox Code Playgroud)

android-studio

7
推荐指数
1
解决办法
1171
查看次数

使用带有复选框的android双向数据绑定

我试图使用Android双向databindingcheckBox在一个片段。
我有多个viewPager带有 custom 的片段,第FragmentStatePagerAdapter一个片段。 我有一个带有以下代码的复选框:viewModelfragment

<CheckBox
            android:id="@+id/checkbox_accept_rules"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checked="@={viewmodel.isAccept}"
            android:gravity="right"
            android:text="text..." />
Run Code Online (Sandbox Code Playgroud)

在视图模型中:

private final ObservableBoolean isAccept = new ObservableBoolean(false);
Run Code Online (Sandbox Code Playgroud)

当我转到最后一个fragment并返回到第一个时checkBox不再选中,复选框的颜色为真但选中图标不存在!以前有人遇到过这个问题吗?

提前致谢

android viewmodel android-mvvm

7
推荐指数
1
解决办法
2787
查看次数