我知道DP,SP和PX之间的区别.在搜索了这个主题后,我发现没有什么能让我完全满意.也许这篇文章是重复的,但我仍然想知道从DP到PX,DP到SP,从SP到PX,从PX到SP,从SP到DP,从DP到SP的转换公式是什么?我知道一些代码可以做到这一点,但它们并不完美.
我在自定义视图的构造函数中调用以下内容:
private void style(Resources.Theme theme, AttributeSet attrs) {
TypedArray a = theme.obtainStyledAttributes(
attrs,
R.styleable.StackedTextView,
0, 0);
try {
DebugTool.assertTrue(holdr != null, "View holder has not been properly intialized.");
String line1 = a.getString(R.styleable.StackedTextView_line1);
setLine1(line1);
String line2 = a.getString(R.styleable.StackedTextView_line2);
setLine2(line2);
line1Size = a.getDimension(R.styleable.StackedTextView_line1_textSize, 20);
line2Size = a.getDimension(R.styleable.StackedTextView_line2_textSize, 20);
if (line1Size > 0) {
holdr.textLine1.setTextSize(line1Size);
}
if (line2Size > 0) {
holdr.textLine2.setTextSize(line2Size);
}
} finally {
a.recycle();
}
}
Run Code Online (Sandbox Code Playgroud)
它应该为2个文本字段设置文本和文本大小.
除了文本内容的字符串格式之外,我在attr.xml中还有以下内容(工作正常).
<attr name="line1_textSize" format="dimension" />
<attr name="line2_textSize" format="dimension" />
Run Code Online (Sandbox Code Playgroud)
当我使用此视图并通过xml使用维度设置文本大小时,
<com.me.app.view.component.StackedTextView
android:id="@+id/overview_total_reviews"
app:line1="40" …Run Code Online (Sandbox Code Playgroud) 我想在将其添加到xml文件的主窗口后重置textView高度.
在RelativeLayout中,
<TextView
android:id="@+id/text_l"
android:layout_width="50sp"
android:layout_height="50sp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10sp"
android:layout_marginTop="145dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000" >
</TextView>
Run Code Online (Sandbox Code Playgroud)
我只想将它从50改为70:
我试过了:
TextView text = (TextView)findViewById(R.id.text_l);
text.setHeight(70);
Run Code Online (Sandbox Code Playgroud)
但没有改变.
我在AlertDialog中有一个EditText.看起来像这样.

看看它说tddjdjck的位置以及它是如何缩进的.这就是我想要的(我使用setPadding左右设置为50),但我也希望它下面的蓝线也缩进.我怎么做?
我使用的代码如下:
final AlertDialog.Builder alert = new AlertDialog.Builder(thisActivity);
final EditText input = new EditText(thisActivity);
input.setSingleLine();
input.setPadding(50, 0, 50, 0);
alert.setTitle("by...");
alert.setMessage("enter the name of the person who did:");
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString().trim();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
Run Code Online (Sandbox Code Playgroud)
谢谢
在某些情况下,Android-Lint给了我这个暗示:
此标签及其子代可以替换为一个和复合drawable
我可以在某些地方这样做,但在其他地方,缩放图像很重要,我无法做到.有没有选项可以设置复合可绘制的大小?
可能重复:
在android中将像素转换为dp
我正在尝试将像素转换为dp.公式是什么?
让我们将640和480转换成dp.文档说这个
dp单位到屏幕像素的转换很简单:px = dp*(dpi/160)
但我认为这不是我需要的(我不知道如何使用它).我想我只需要论坛.我准备好了代码:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi)
{
case DisplayMetrics.DENSITY_LOW:
int sixForty = ?
int fourEighty = ?
break;
case DisplayMetrics.DENSITY_MEDIUM:
int sixForty = ?
int fourEighty = ?
break;
case DisplayMetrics.DENSITY_HIGH:
int sixForty = ?
int fourEighty = ?
break;
}
Run Code Online (Sandbox Code Playgroud) 我的main.xml文件中有一个ImageView:
<ImageView
android:id="@+id/pageImage"
android:layout_width="270dp"
android:layout_height="45dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="25dp"
android:layout_marginTop="15dp"
android:scaleType="fitXY"
android:src="@drawable/pageimage" />
Run Code Online (Sandbox Code Playgroud)
我只需要以layout_height编程方式将其设置为另一个值.
另外,我需要在dp中设置值.所以它目前是45dp,我想在主要活动中将其更改为另一个值.
我试图用LayoutParams弄清楚如何做到这一点,但我无法成功.
谢谢.
所以,我有ScrollView一个孩子 - 一个LinearLayout有两个孩子:a TextView和a ViewPager.ViewPager包含许多元素的布局,这就是为什么我需要垂直滚动的能力.只有页面ViewPager可以水平滚动(即:我只想在其中水平滑动ViewPager).那一个TextView不能水平滚动,但应该与我一起滚动ViewPager.
简单?没有.
我在StackOverflow中看到了非常类似的问题(这里,这里,这里和这里).所有建议的解决方案都不适合我:(
我看到的是这个 < - 我的甜蜜UI :),但我无法垂直滚动:(
在ViewPager中嵌入ScrollViews不是一个选项 - UI的设计禁止这样做.
也许这是我用编程方式填充视图寻呼机中的每个页面的东西?嗯...
任何建议,将不胜感激.
我的代码:
activity_main.xml中:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:fillViewport="true" >
<LinearLayout
android:id="@+id/linearLayoutGeneral"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tvText"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:text="Test text" />
<android.support.v4.view.ViewPager
android:id="@+android:id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager>
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
ViewPager中的每个页面都有这样的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" …Run Code Online (Sandbox Code Playgroud) android android-fragments android-scrollview android-viewpager


如果您查看Android设置屏幕截图或FragmentsBC屏幕截图,PreferenceFragment中会有保证金.你怎么能摆脱它?
我尝试将PreferenceFragment宽度设置为fill_parent,但没有运气.
android ×10
android-xml ×1
aspect-ratio ×1
margin ×1
padding ×1
pixel ×1
preference ×1
textview ×1