Java 如何创建左侧为“货币”,右侧为“值”的编辑文本
如何创建左侧为“货币”,右侧为“值”的编辑文本 这就是图像 货币也可以是编辑文本的一部分?或者货币是不同的编辑文本Java 如何创建左侧为“货币”,右侧为“值”的编辑文本,java,android,Java,Android,如何创建左侧为“货币”,右侧为“值”的编辑文本 这就是图像 货币也可以是编辑文本的一部分?或者货币是不同的编辑文本 我希望它只能是一个编辑文本。为什么不创建一个水平方向的线性布局呢 并将文本视图左对齐,编辑文本右对齐?为什么不创建水平方向的线性布局 并将文本视图左对齐,编辑文本右对齐?使用EditText并设置此属性android:drawableLeft=“@mipmap/ic_launcher” 代码 <EditText android:layout_width
我希望它只能是一个编辑文本。为什么不创建一个水平方向的线性布局呢
并将文本视图左对齐,编辑文本右对齐?为什么不创建水平方向的线性布局
并将文本视图左对齐,编辑文本右对齐?使用EditText并设置此属性
android:drawableLeft=“@mipmap/ic_launcher”
代码
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_launcher"
android:hint="Add money"
android:gravity="center"
android:padding="3dp"/>
使用EditText并设置此属性
android:drawableLeft=“@mipmap/ic_launcher”
代码
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_launcher"
android:hint="Add money"
android:gravity="center"
android:padding="3dp"/>
使用SpannableString
可以实现这一点
在activity\u main.xml
文件中
下面是UsdSpannableSuperScript.java
公共类UsdSpannableSuperScript扩展了SuperscriptSpan{
//将上标除以这个数字
受保护的int fontScale=2;
//移位值,从0到1.0
受保护的浮点移位百分比=0;
//不会移动
UsdSpannableSuperScript(){
}
//设置移位百分比
UsdSpannableSuperScript(浮动移位百分比){
如果(移位百分比>0.0&&移位百分比<1.0)
this.shiftPercentage=shiftPercentage;
}
@凌驾
public void updateDrawState(TextPaint){
//原始上升
浮动上升=tp.上升();
//缩小字体比例
tp.setTextSize(tp.getTextSize()/fontScale);
//获得新的字体提升
float newAscent=tp.getFontMetrics().ascent;
//将基线移动到旧字体的顶部,然后向下移动新字体的大小
//使用移位百分比调整错误
tp.baselineShift+=(上升-上升*shiftPercentage)
-(新上升-新上升*移动百分比);
}
@凌驾
公共无效更新度量重述(TextPaint tp){
更新状态(tp);
}
}
这里是屏幕
使用SpannableString
可以实现这一点
在activity\u main.xml
文件中
下面是UsdSpannableSuperScript.java
公共类UsdSpannableSuperScript扩展了SuperscriptSpan{
//将上标除以这个数字
受保护的int fontScale=2;
//移位值,从0到1.0
受保护的浮点移位百分比=0;
//不会移动
UsdSpannableSuperScript(){
}
//设置移位百分比
UsdSpannableSuperScript(浮动移位百分比){
如果(移位百分比>0.0&&移位百分比<1.0)
this.shiftPercentage=shiftPercentage;
}
@凌驾
public void updateDrawState(TextPaint){
//原始上升
浮动上升=tp.上升();
//缩小字体比例
tp.setTextSize(tp.getTextSize()/fontScale);
//获得新的字体提升
float newAscent=tp.getFontMetrics().ascent;
//将基线移动到旧字体的顶部,然后向下移动新字体的大小
//使用移位百分比调整错误
tp.baselineShift+=(上升-上升*shiftPercentage)
-(新上升-新上升*移动百分比);
}
@凌驾
公共无效更新度量重述(TextPaint tp){
更新状态(tp);
}
}
这里是屏幕
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="USD" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:background="@null"
android:singleLine="true" />
</LinearLayout>
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:drawableLeft="@drawable/dollar_sign"
android:drawablePadding="5dp"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="USD" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:background="@null"
android:singleLine="true" />
</LinearLayout>
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:drawableLeft="@drawable/dollar_sign"
android:drawablePadding="5dp"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
要使用,请扩展TextView并手动添加此逻辑,或通过代码执行此操作尝试拍摄USD的可绘制图像,并在可绘制左侧设置为edittext,并设置edittext重心。试试这个你可以试试TextInputLayout@Er.Arjunsaini如何从文本或字符串中获得可绘制图像?@Er.Arjunsaini实际上这是一个非常好的主意。现在我正在搜索如何使用Spanable从文本中获取可绘制图像,我想尝试获取美元的可绘制图像,并在drawableLeft中设置为edittext并设置edittext重心。试试这个你可以试试TextInputLayout@Er.Arjunsaini如何从文本或字符串中获得可绘制图像?@Er.Arjunsaini实际上这是一个非常好的主意。现在我正在搜索如何使用Spanable从文本中获取可绘制图像,我想我刚才已经这样做了,但问题是如果有可能将其合并为一个,我会这样做。我刚才已经这样做了,但问题是,如果可以合并为一个,那么我会这样做。实际上,这是唯一一个适合我的需要,我想我可以分离图像文件,并将其添加到左侧的可绘制文件,但似乎它不适合我。谢谢你的代码,我真的很感激。顺便说一句,如果我得到这个,美元符号会出现吗?事实上,这是唯一一个适合我需要的,我想我会的
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:drawableLeft="@drawable/dollar_sign"
android:drawablePadding="5dp"
android:inputType="number"
android:padding="10dp"
android:singleLine="true" />
Currency currency = new Currency(Locale.US)
final String usd = currency.getCurrencyCode(); //returns USD