小编Sna*_*ake的帖子

Android:根据屏幕大小以编程方式调整大小

获取设备的宽度和高度并相应地以编程方式设置图像/按钮大小是一个坏习惯.

我发现在布局和密度上使用不同的文件夹是不准确的,因为它在某些设备上给我带来了奇怪的结果(在无关紧要的情况下)

感谢您的体验.谢谢

android android-layout

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

在可扩展列表中以编程方式展开组行

我正在使用expandablelistview.无论如何我可以在单击里面的图像时展开组行?我知道要让图像响应点击,我必须设置它的焦点.现在,一旦此图像响应click(在我的客户适配器内),我如何以编程方式扩展/折叠它所属的特定组行?

谢谢

android

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

OpenInputStream 返回文件未找到异常,但文件存在

我正在尝试缩放 SD 卡中的位图并将其写入手机内存。然后稍后对其进行解码以将其添加到HashMap.

问题是我收到文件未找到异常,尽管路径正确并且缩放图像存在(我检查过)

这是保存的部分

        Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options );         
        File imageRootPath = getFilesDir();
        File imageRoot = new File(imageRootPath, imagUri.getLastPathSegment()+".png");
        FileOutputStream out = new FileOutputStream(imageRoot);
        yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 90, out);
Run Code Online (Sandbox Code Playgroud)

这是我读取文件时的部分

try {
Uri mainImgeUri = Uri.parse(imageRoot.toString());
File imageFile = new File(mainImgeUri.toString());
if(imageFile.exists()){
   System.out.println("it does");
}
InputStream imageStream = ListPropertiesBaseActivity.this.getContentResolver().openInputStream(mainImgeUri); // I am getting file not found error

Bitmap yourSelectedImage =BitmapFactory.decodeStream(imageStream);
hmBitmap.put(ID, yourSelectedImage);
imageStream.close();
} catch (Exception e) {

e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

难道是OpenInputStream无法读取手机内存?或者保存后的图像可能不好?

虽然我可以通过手动浏览文件并打开它来查看它

请注意,执行了System.out.Println,因此这意味着该文件存在

android

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

从内部存储发送带附件的电子邮件

我按照android docs的建议在内部存储上创建文件.准确地说,文件是在内部存储中的特定目录下创建的.我使用模式world_readable模式执行此操作.然后我尝试使用电子邮件程序附加文件.我能够连接文件,但发送电子邮件失败(似乎不是加载文件)我相信它是内部存储/许可的东西.

任何人都知道如何解决它或一个工作的例子?将外部存储上的所有东西都转换成是很糟糕的.

谢谢

Ps:我检查了其他线程,他们似乎没有解决方案(旧线程)

android

6
推荐指数
2
解决办法
7674
查看次数

按百分比划分屏幕

我试图在3个视图垂直布局时创建一个相对布局.第一个视图是文本,应该占用屏幕的10%.第二个视图是图像,应该占据屏幕的50%.第3个视图是文本,应该占用剩余的40%.

我这样做的方法是手动调整图像的尺寸,并通过查看它估计它接近我想要的.我相信这不是正确的方法.那我该怎么办呢?基本上我怎么能明智地划分屏幕百分比,我可以用相对布局来做

谢谢

android android-layout

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

设置整个应用程序的屏幕方向

我正在实现一种方法,用户可以从应用程序设置中禁用屏幕旋转.如果选中此框,则Activity可以自动旋转任何一个框并按照手机旋转设置进行操作.如果未选中,则禁用自动旋转.

我知道如何做到这一点每个Activity这样的

if(!GlobalVar.sharedPreferences_static.isAutoRotate()){
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}else{
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以为所有活动(整个应用程序)执行此操作而不是为每个活动执行此操作Activity?谢谢.

java android screen-orientation android-activity

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

使用 Auth 创建用户并同时写入 Firestore

我有一个场景,我需要使用 来创建用户Auth并将更多信息(例如业务名称和类型)添加到 Firestore 数据库。Firestore 作为事务/批处理操作,但仅适用于 Firestore。

有没有一种方法可以执行Auth诸如创建和 Firestore 数据插入之类的操作。两种操作都必须成功或失败。现在我将它们链接起来,但我会担心一个失败而另一个成功需要优雅地处理。

谢谢

java android firebase firebase-authentication google-cloud-firestore

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

如何从Firestore获取对象数组

查询作为地图数组的字段的正确方法是什么.

目前的结构是

Collection1
     Document1
         -papers:                <---- This is an array  
              (0): 
                 -Name:abc
                 -Id:123 
              (1): 
                 -Name:xyz
                 -Id:456
Run Code Online (Sandbox Code Playgroud)

这是我的代码

DocumentReference docRef = db.collection("Collection1").document("Document1");
        docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document != null && document.exists()) {
                       //?? how can I retrieve papers
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

基本上我是检索它并将其转换为ArrayList>然后循环它以创建我的最终ArrayList?

或者它是如何工作的?

java android firebase google-cloud-firestore

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

材质按钮图标​​显示为无颜色

我正在使用以下物料按钮:

<android.support.design.button.MaterialButton
            android:id="@+id/bFavourite"         style="@style/Widget.MaterialComponents.Button.UnelevatedButton.Icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:insetTop="0dp"
            android:insetBottom="0dp"
            android:textAllCaps="false"
            android:textSize="20sp"
            app:backgroundTint="@color/main_dark_blue"
            app:backgroundTintMode="src_over"
            app:cornerRadius="0dp"
            app:icon="@drawable/heart_filled"
            app:iconGravity="textStart"
            app:iconPadding="0dp" />
Run Code Online (Sandbox Code Playgroud)

heart_filled是红色心脏的png。但是,所显示的图标没有任何颜色(即白色的心)。为什么没有显示图像的实际颜色?谢谢

android

6
推荐指数
4
解决办法
1456
查看次数

api请求的访问令牌与用户名/密码

我知道这似乎是一个微不足道的问题,但我找不到至少能让我安心的答案。

如果移动应用程序正在与服务器进行通信,那么通常他们会登录并获得访问令牌,他们可以在任何未来请求的剩余会话中使用该令牌。

为什么不只是在每个请求中通过 HTTPS 传递用户名和密码而不是访问令牌。访问令牌需要通过数据库进行验证,用户名/密码的组合也是如此。如果他们做同样的事情,为什么还要付出访问令牌的额外努力?我知道我错过了一些东西,但我无法弄清楚

security api

6
推荐指数
2
解决办法
2874
查看次数