小编Mar*_*orn的帖子

如何在Activity转换上执行淡入淡出动画?

我正在编写我的徽标活动和我的主要活动之间的过渡效果,但我有一个问题,即在消失之前,活动转移到顶部:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >

    <alpha
        android:duration="2000"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" >
    </alpha>

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

我怎么能改进这个代码才能获得消失效果呢?

animation android android-intent pending-transition

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

当primaryDark为白色时更改状态栏文本颜色

我正在尝试重现Google日历应用程序的行为: 在此输入图像描述

但我还没有找到改变状态文本颜色的方法.如果我将colorPrimaryDark设置为白色,我无法看到图标既不是状态栏的文本也不是因为它们的颜色也是白色.

有没有办法改变状态栏文字颜色?

提前致谢

android android-styles android-statusbar

50
推荐指数
5
解决办法
4万
查看次数

何时取消订阅订阅

我有一个关于如何取消订阅可观察量的问题.我有两个代码,我不确定哪个更好.

示例1 - >流完成后取消订阅订阅者:

Subscriber<String> subscriber = new Subscriber<String>() {
        @Override
        public void onCompleted() {
            progressdialog.dissmiss();
            unsubscribe();
        }

        @Override
        public void onError(Throwable e) {
            progressdialog.dissmiss();
        }

        @Override
        public void onNext(String s) {
            // do something with data
        }
    }
Run Code Online (Sandbox Code Playgroud)

示例2 - >销毁活动后取消订阅订阅:

private void test(){
    Subscriber<String> subscriber = new Subscriber<String>() {
        @Override
        public void onCompleted() {
            progressdialog.dissmiss();
        }

        @Override
        public void onError(Throwable e) {
            progressdialog.dissmiss();
        }

        @Override
        public void onNext(String s) {
            // do something with data
        }
    };

    subscription …
Run Code Online (Sandbox Code Playgroud)

android reactive-programming rx-java rx-android

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

如何在Action Bar中设置粗体标题?

我正在编辑样式xml,试图让Activity标题变为粗体.

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#81CFEB</item>
    <item name="android:textStyle">bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但只有我能设定的是所需的背景颜色.我不是为什么textStyle没有设置为粗体.

有谁知道如何解决它?

android android-actionbar android-styles

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

获取ArrayList <HashMap <String,String >>值

在我的第一个活动中,我有下一个代码:

ArrayList<HashMap<String, String>> list_params = new ArrayList<HashMap<String, String>>();
            HashMap<String, String> param_aux = new HashMap<String, String>();

            param_aux.put("language", Integer.toString(language_spinner.getSelectedItemPosition()));
            param_aux.put("city", city_edittext.getText().toString());

list_params.add(param_aux);
Run Code Online (Sandbox Code Playgroud)

在我的第二个活动中,我想获取值,所以我的代码是:

ArrayList<HashMap<String, String>> list_params_ = new ArrayList<HashMap<String, String>>();
    list_params_= (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("list_params");

    System.out.println("...serialized data.."+list_params_);
Run Code Online (Sandbox Code Playgroud)

如果我chech System.out,值正确发送但我想​​获得HashMap的特定值(例如:城市值).

...serialized data..[{weekend_midday_check=1, weekend_afternoon_check=0, weekend_morning_check=1, sort_by=0, language=0, weekly_afternoon_check=1, weekly_morning_check=1, weekly_midday_check=1, city=Terrassa}]
Run Code Online (Sandbox Code Playgroud)

如何获得第一项活动中发送的城市的价值?

android hashmap android-activity

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

错误:写入时出错 **** 文件名太长

我正在尝试用我的笔记本电脑和 Ubuntu 组装一个 Android 版本,但我不断收到由 dagger 生成的文件的错误:

error: error while writing DaggerMyLibraryBookmarksComponent$com_testx_baseapplication_presentation_common_dagger_component_ApplicationComponent_userManagerRepository.class (File name too long)
Run Code Online (Sandbox Code Playgroud)

这个错误很奇怪,因为在其他具有相同代码和相同的计算机中,我可以毫无问题地编译项目。

有没有人遇到过这个问题?

android android-gradle-plugin dagger-2

5
推荐指数
1
解决办法
1132
查看次数

加密/解密字符串 Kotlin

我在 Kotlin 中创建了这两个扩展来加密/解密字符串:

fun String.encrypt(seed : String): String {
    val keyGenerator = KeyGenerator.getInstance("AES")
    val secureRandom = SecureRandom.getInstance("SHA1PRNG")
    secureRandom.setSeed(seed.toByteArray())

    keyGenerator.init(128, secureRandom)
    val skey = keyGenerator.generateKey()
    val rawKey : ByteArray = skey.encoded

    val skeySpec = SecretKeySpec(rawKey, "AES")
    val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding")
    cipher.init(Cipher.ENCRYPT_MODE, skeySpec)
    val byteArray = cipher.doFinal(this.toByteArray())

    return byteArray.toString()
}

fun String.decrypt(seed : String): String {
    val keyGenerator = KeyGenerator.getInstance("AES")
    val secureRandom = SecureRandom.getInstance("SHA1PRNG")
    secureRandom.setSeed(seed.toByteArray())

    keyGenerator.init(128, secureRandom)
    val skey = keyGenerator.generateKey()
    val rawKey : ByteArray = skey.encoded

    val skeySpec = SecretKeySpec(rawKey, "AES") …
Run Code Online (Sandbox Code Playgroud)

encryption aes kotlin

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

不推荐使用ShowDIalog()中的DatePickerDialog

我有下一个代码:

dateDisplay1.setOnClickListener(new OnClickListener() {
@SuppressWarnings("deprecation")
    public void onClick(View v) {
        option = 1;
        showDialog(DATE_DIALOG_ID);
    }
});
Run Code Online (Sandbox Code Playgroud)

和onCreateDialog函数:

protected Dialog onCreateDialog(int id) {

    Calendar cal = Calendar.getInstance();

    switch (id) {
    case DATE_DIALOG_ID:
        return new DatePickerDialog(this, dayDate, cal.get(Calendar.YEAR),      cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
    case TIME_DIALOG_ID:
        return new TimePickerDialog(this, timeDate, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), false);
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是将不推荐使用的showDialog()调整为DialogFragment,但没有成功.下面的代码有效但不是最佳实践.所以我想纠正代码.

你应该如何实现呢?

android-datepicker android-dialog

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

设置Textview + Edittext + Button

我想在同一行放一个TextView,Edittext和一个按钮,但我遇到的问题是按钮未正确对齐到左边,在小屏幕中,edittext填充整个.

小屏幕: 在此输入图像描述

大屏幕: 在此输入图像描述

我的编纂如下:

<LinearLayout
        android:id="@+id/layout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/address_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/address_textview"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/address_edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="@string/address_textview_hint"
            android:imeActionLabel="@string/search_button"
            android:imeOptions="actionDone"
            android:inputType="textCapWords"
            android:nextFocusDown="@id/address_edittext"
            android:nextFocusUp="@id/address_edittext"
            android:singleLine="true" />

        <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="right" >
        <Button
            android:id="@+id/go_button"
            android:layout_width="50dp"
            android:layout_height="35dp"
            android:text="Go" />
                </RelativeLayout>

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

android button android-layout

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

仅加密图像文件的内容而不加密整个文件

我正在创建一个APP,只需要记录图像的内容.我需要在转换后文件仍然是图像,但显示的图像不显示为原始图像.

例如,我将加密的图像发送给其他用户,这个图像将能够显示和图像(但不是原始图像),但原始图像在该文件中被加密.

使用以下algorythm我加密了整个文件,由于标头也被加密,因此无法将其作为图像打开.

我正在使用这个algorythm,但我不知道如何只加密数据或如何在java/android中添加/修改图像的标题:

public byte[] encrypt_image(Bitmap bm, String password_) {

    byte[] encryptedData = null;

    try{
        ByteArrayOutputStream baos = new ByteArrayOutputStream();  
        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] b = baos.toByteArray();  

        byte[] keyStart = password_.getBytes();
        KeyGenerator kgen = KeyGenerator.getInstance("AES");
        SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
        sr.setSeed(keyStart);
        kgen.init(128, sr); 
        SecretKey skey = kgen.generateKey();
        byte[] key = skey.getEncoded();    

        // Encrypt
        encryptedData = Security.encrypt(key,b);


    }catch (Exception e) {
        Log.e("encrpyt_image()", e.getMessage());
    }
    return encryptedData;
}
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何编写这个,我一直在互联网上搜索没有成功.

java security encryption android bit-manipulation

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

正则表达式以验证城市字段

我正在创建一个正则表达式来验证城市字段.使用以下代码,我只能使用一个空格验证City字段:

Pattern pattern_ = Pattern.compile("^[a-zA-Z]+(?:[\\s-][a-zA-Z]+)*$");
Run Code Online (Sandbox Code Playgroud)

有关如何改进我的正则表达式以验证具有多个空格的城市字段的任何建议?

好吧,最后我正在使用这个正则表达式:

Pattern pattern_ = Pattern.compile("^[a-zA-Z]+(?:(?:\\s+|-)[a-zA-Z]+)*$");
Run Code Online (Sandbox Code Playgroud)

但是现在我遇到了重音问题如何在城市场地添加重音?

regex

0
推荐指数
1
解决办法
4779
查看次数