我的应用程序中有以下布局,最小API级别为4,目标API级别为8.事实是,在某些设备(如Xperia X10 mini)中,当我触摸@ + actBula / btnZoomOut时,所采取的操作是从它旁边的按钮@ + actBula / btnZoomIn。而在Xperia X8和其他三星手机中,它的效果非常好。
Xperia X10 mini的规格为240 x 320像素,2.55英寸(~157 ppi像素密度)。 Xperia X8是320 x 480像素,3.0英寸(~92 ppi像素密度)。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/linearLayout1" android:scrollbarAlwaysDrawVerticalTrack="true" android:layout_width="fill_parent">
<LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout3" android:layout_width="fill_parent">
<LinearLayout android:id="@+id/linearLayout4" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="left">
<Button android:id="@+actBula/btnBack" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingLeft="10dp" android:paddingTop="10dp" android:layout_marginLeft="10dp" android:background="@drawable/setabola48" android:layout_marginTop="5dp" android:layout_marginBottom="5dp"></Button>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout5" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="right" android:layout_gravity="right" android:orientation="horizontal" android:layout_marginLeft="50dp">
<Button android:id="@+actBula/btnZoomIn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/zoomp48" android:layout_marginTop="5dp"></Button>
<Button android:id="@+actBula/btnZoomOut" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginLeft="20dp" android:background="@drawable/zoomm48" android:layout_marginTop="5dp"></Button>
</LinearLayout>
</LinearLayout>
<ScrollView android:id="@+id/scrollView1" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:layout_width="fill_parent" android:id="@+id/linearLayout2" android:layout_height="fill_parent" android:orientation="vertical">
<TextView android:layout_width="wrap_content" (...) ></TextView>
</LinearLayout>
</ScrollView>
这些是onClick侦听器:
final TextView myTextView = (TextView) findViewById(R.actBula.txtBula);
Button btnZoomIn = (Button) findViewById(R.actBula.btnZoomIn);
btnZoomIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myTextView.setTextSize(myTextView.getTextSize()+1);
}
});
Button btnZoomOut = (Button) findViewById(R.actBula.btnZoomOut);
btnZoomOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myTextView.setTextSize(myTextView.getTextSize()-1);
}
});
答案 0 :(得分:1)
我刚刚将此行更改为myTextView.setTextSize(myTextView.getTextSize()-1);
到myTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, myTextView.getTextSize()-1);
getTextSize()返回确切的像素大小。如果我指定我的单位,我会得到所需的结果。 谢谢无论谁在这里帮助我。
答案 1 :(得分:0)
这听起来像按钮的id在R.java中混淆了。在将应用上传到Xperia X10 mini之前,您是否已运行Clean...
?
由于Android 1.6不太可能,但是尝试暂时将目标API级别更改为4以在Xperia X10 mini上运行应用程序,看看会发生什么。
答案 2 :(得分:0)
您也可以尝试声明ID已放置到标准位置的按钮。我的意思是,将"@+actBula/btnZoomIn"
更改为"@+id/btnZoomIn"
,依此类推。
要澄清的另一件事是按钮获得的实际ID。在代码中添加一些打印输出,并看到按钮id的LogCat将打印:
final TextView myTextView = (TextView) findViewById(R.actBula.txtBula);
Button btnZoomIn = (Button) findViewById(R.actBula.btnZoomIn);
//That's what I added:
Log.i("", "btnZoomIn.getId()=" + btnZoomIn.getId() + ", R.actBula.btnZoomIn=" + R.actBula.btnZoomIn);
btnZoomIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myTextView.setTextSize(myTextView.getTextSize()+1);
}
});
Button btnZoomOut = (Button) findViewById(R.actBula.btnZoomOut);
//That's what I added:
Log.i("", "btnZoomOut.getId()=" + btnZoomOut.getId() + ", R.actBula.btnZoomOut=" + R.actBula.btnZoomOut);
btnZoomOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myTextView.setTextSize(myTextView.getTextSize()-1);
}
});