我正在阅读关于Android的房间库.我看到他们改变包装android来androidx.我不明白.请有人解释一下.
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
我有一个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)
我得到的图像,但没有文字.我该如何显示文字?请帮我!
我试图覆盖默认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) 我想将图像设置为背景上的文本和文本左侧的图标.在iPhone中非常容易,但无法弄清楚如何在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的答案非常接近一个很好的解决方案:

在我的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) 我有以下按钮:
<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)
它的出现是:

如何缩小我的绘图并显示一个小箭头?
所以我有四个按钮,它们都使用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)
我在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) 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背景图像?
我想设计一个带有图标和文字嵌入的大按钮的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 ×11
java ×4
button ×3
xml ×3
android-architecture-components ×1
androidx ×1
autoresize ×1
background ×1
bmp ×1
cell ×1
email ×1
grid ×1
image ×1
imagebutton ×1
layout ×1
parsing ×1
scale ×1
togglebutton ×1