相关疑难解决方法(0)

什么是AndroidX

我正在阅读关于Android的房间库.我看到他们改变包装androidandroidx.我不明白.请有人解释一下.

implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)

即使这也适用于android包装.

implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)
  • 需要什么来包装新的支持库androidx而不是android.
  • 用例和影响现有项目的因素.

android android-architecture-components android-jetpack androidx

204
推荐指数
8
解决办法
10万
查看次数

如何在ImageButton上显示文本?

我有一个ImageButton,我想在上面显示文字和图像.但是当我尝试模拟器时:

<ImageButton 
    android:text="OK" 
    android:id="@+id/buttonok" 
    android:src="@drawable/buttonok"
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

我得到的图像,但没有文字.我该如何显示文字?请帮我!

android imagebutton

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

Android:使用XML为togglebutton指定两个不同的图像

我试图覆盖默认ToggleButton外观.这是定义以下内容的XML ToggleButton:

<ToggleButton android:id="@+id/FollowAndCenterButton"
        android:layout_width="30px"
        android:layout_height="30px"
        android:textOn="" android:textOff="" android:layout_alignParentLeft="true"
        android:layout_marginLeft="5px"
        android:layout_marginTop="5px" android:background="@drawable/locate_me"/>
Run Code Online (Sandbox Code Playgroud)

现在,我们有两个30 x 30图标,我们想要用于点击/未点击状态.现在我们有代码根据状态以编程方式更改背景图标:

centeredOnLocation.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (centeredOnLocation.isChecked()) {
                centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me_on));
            } else {
                centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me));
            }
        }
});
Run Code Online (Sandbox Code Playgroud)

显然我正在寻找一种更好的方法来做到这一点.我试图为背景图像制作一个选择器,它会自动在状态之间切换:

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:drawable="@drawable/locate_me" /> <!-- default -->
 <item android:state_checked="true"
       android:drawable="@drawable/locate_me_on" /> <!-- pressed -->
 <item android:state_checked="false"
       android:drawable="@drawable/locate_me" /> <!-- unchecked -->
Run Code Online (Sandbox Code Playgroud)

但这不起作用; 阅读ToggleButtonAPI(http://developer.android.com/reference/android/widget/ToggleButton.html),看来唯一继承的xml属性是

    XML Attributes
Attribute Name  Related Method  Description
android:disabledAlpha       The alpha to apply to the …
Run Code Online (Sandbox Code Playgroud)

java xml android togglebutton

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

Android背景+文字+图标的按钮

我想将图像设置为背景上的文本和文本左侧的图标.在iPhone中非常容易,但无法弄清楚如何在Android上执行此操作,可以调整该按钮的大小并保持图标+文本位置和距离正确.

苹果手机:

苹果手机

Android我有这个:

Android的

xml代码是:

<Button
    android:id="@+id/btSettings"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/tvWhatever"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="20dp"
    android:background="@drawable/bt_general"
    android:drawableTop="@drawable/settings_selected"
    android:text="@string/settings"
    android:textColor="#000000" />
Run Code Online (Sandbox Code Playgroud)

这里拿到代码.

如果我使用android:drawableLeft,那么图标将转到最左边的部分.

在此输入图像描述

如果我开始玩半硬编码的填充物,那么我会看到不同的差异:(手机和桌子)

如果我添加android:gravity="left|center_vertical"它将看起来像这样:

在此输入图像描述

文本是可变的:当用户更改语言时,它将发生变化.

怎么做得好?

我不想低估任何人的答案,但请阅读问题,不要提出我已经尝试过的内容.还告诉硬编码修复不能很好地工作.

这不是作业,而是商业软件的一部分.

以下是来自答案的建议代码:

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/bt_general"
        android:padding="20dip" >

        <ImageView
            android:id="@+id/xIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dip"
            android:src="@drawable/settings_selected" />

        <TextView
            android:id="@+id/xSettingsTxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="@string/settings"
            android:textColor="#000000" />
    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

您如何看待android:layout_marginLeft="10dip"Galaxy s4的外观?这是一个预览:

在此输入图像描述

这不是,我所问的."dip"或"dp"或"px"不应在任何地方用作距离左侧,顶部的距离,因为手机具有HPDI,屏幕较小,平板电脑具有MDPI和宽分辨率.简单不适用于mdpi和xxhdpi.

Nizam的答案非常接近一个很好的解决方案:

在此输入图像描述

java xml layout user-interface android

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

如何设置图像按钮(Android)的文本?

在我的Android项目中,我有一个图像按钮,其背景设置为某个图像.我想在图像按钮上设置一些文字.我怎么做/

我想设置文本,因为本地化将在项目中使用....

java android

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

没有图片的自定义箭头:Android

我遵循了这个教程:http://looksok.wordpress.com/2013/08/24/android-triangle-arrow-defined-as-an-xml-shape/

本教程用于创建自定义箭头作为递增/递减按钮,而无需使用图像.箭头的形状很好但是向上箭头的位置使其底部位于按钮视图的底部,而向下箭头的底部位于按钮视图的顶部.换句话说,箭头没有正确对齐.

在此输入图像描述

我想知道,按钮视图是否有某种y轴偏移可以用来更好地定位箭头?我的代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/arrow_up"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:background="@drawable/custom_arrow" />

    <Button
        android:id="@+id/arrow_down"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:rotation="180"
        android:layout_toRightOf="@id/arrow_up"
        android:background="@drawable/custom_arrow" /> 
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

custon_arrow.xml是:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <!-- android:pivotX="-40%" -->
        <rotate 
            android:fromDegrees="45"
            android:toDegrees="45"
            android:pivotX="-20%"
            android:pivotY="88%" >
            <shape
                android:shape="rectangle" >
                <stroke android:color="@color/transparent" android:width="5dp"/> 
                <solid
                    android:color="@color/grey_shade" />
            </shape>
        </rotate>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

xml android android-custom-view

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

如何缩放按钮的背景?

我有以下按钮:

<Button
android:id="@+id/buttonok"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/back_no_save"
android:text="OK" />
Run Code Online (Sandbox Code Playgroud)

它的出现是:

在此输入图像描述

如何缩小我的绘图并显示一个小箭头?

android background button scale

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

有什么办法可以让按钮上的图像自动调整大小以适应屏幕吗?

所以我有四个按钮,它们都使用match_parent来表示高度和宽度.我使用"drawableTop"属性在按钮本身内有图像,我想制作它,所以我不需要为每个分辨率单独的图像.这是我拍的肖像截图.景观将会有所改变.

按钮画像

所以这看起来很好,除了我只有4种不同的图像分辨率,并在我的手机上尝试它们没有产生积极的结果.有没有什么方法可以让我有一个更大的图像,比如只是"可绘制"并让它缩小以适应所有分辨率?如果没有,我该怎么办?我目前涵盖hdpi,ldpi,mdpi和xhdpi,但我想涵盖所有界限.还有哪些其他密度?

如果我可以实现自动调整大小,我也不必禁止用户使用Landscape:

按钮 - 风景

另外,这是xml:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:baselineAligned="false"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical"
        tools:ignore="NestedWeights" >

        <Button
            android:id="@+id/bMap"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:drawableTop="@drawable/ic_camera"
            android:text="Button" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <Button
            android:id="@+id/bCamera"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:drawableTop="@drawable/ic_camera"
            android:text="Button" />
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:baselineAligned="false"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical"
        tools:ignore="NestedWeights" >

        <Button
            android:id="@+id/bGallery"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:drawableTop="@drawable/ic_camera"
            android:text="Button" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <Button
            android:id="@+id/bPlants"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:drawableTop="@drawable/ic_camera"
            android:text="Button" />
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android button autoresize android-layout

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

ANDROID:android-parse中的电子邮件客户端接收者电子邮件ID为空

我在app中使用android-parse服务器.下面是电子邮件列的解析db截图.电子邮件列位于数据库中的隐藏密码列之后.

解析数据库截图

我的问题是


当我检索电子邮件客户端的电子邮件ID时,即使电子邮件列有电子邮件,电子邮件也是空的.


注意:在另一个地方的应用程序(另一个表)我以同样的方式将电子邮件ID拉到电子邮件客户端,但邮件显示良好..只有在这里出现问题.

如果有人知道请帮忙吗?

这是解析数据库中的电子邮件列

 try{
                        JSONObject jsonObject = parseObjectToJson(object);
                        Log.d("Object", jsonObject.toString());
                        Log.d("Email", "+" + object.get("email"));
                        personNumber = jsonObject.getString("telephone");
                        personEmail = jsonObject.getString("email");
                    }catch (JSONException je){

                    }catch (ParseException pe){

                    }
Run Code Online (Sandbox Code Playgroud)

这是电子邮件按钮

  emailPerson = (Button)findViewById(R.id.individualEmail);
            emailPerson.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(Intent.ACTION_SEND);
                    i.setData(Uri.parse("mailto:"));
                    i.setType("plain/text");
                    i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {personEmail});
                    startActivity(i);
                }
            });
            if(personEmail==null || personEmail.equals("")  || personEmail.equals(" ")){
                emailPerson.setClickable(false);
                emailPerson.setEnabled(false);
                emailPerson.setVisibility(View.GONE);
            }
            else{
                emailPerson.setEnabled(true);
                emailPerson.setClickable(true);
                emailPerson.setVisibility(View.VISIBLE);
            }
Run Code Online (Sandbox Code Playgroud)

这里工作正常,但这是同一个数据库中的不同表.>在此表中没有隐藏密码字段

try{
                            corporateEmail = jsonObject.getString("email");
                            if(corporateEmail == null …
Run Code Online (Sandbox Code Playgroud)

java email parsing android android-service

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

如何将位图图像设置为按钮背景图像

gridcell = (Button) row.findViewById(R.id.calendar_day_gridcell);    
gridcell.setText("Day 1");    
URL url = new URL("http://172.16.4.29:81/pht/2013/9/18/3027_2013_9_18_12_14_56_b.JPG");
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
Run Code Online (Sandbox Code Playgroud)

如何将bitmapbmp图像设置为按钮gridcells背景图像?

grid android cell bmp

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

在Android按钮内获取调整大小的图像

我想设计一个带有图标和文字嵌入的大按钮的TableLayout.我发现了一些类似的问题,但不一样1.我简化的XML布局是:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow android:id="@+id/TableRow01" android:gravity="center">
<Button android:text="@string/telephone" android:drawableTop="@drawable/phone" android:id="@+id/button_phone"></Button>
<Button android:text="@string/help" android:src="@drawable/help" android:id="@+id/button_help"></Button>
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)

图标图像有点大,所以我想Android调整大小,但android:height参数调整按钮大小,而不是嵌入图像.你有没有想过让文字和图像按钮"可调整大小"?

android image button

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