很抱歉这篇文章看起来很简单,但我不明白我的问题。 我正在使用xml中的android studio开发一个界面。我使用了一些PictureButton,但我希望它们能够使用不同的设备进行相同的演示。
我在文件夹中添加了不同的大小(hdpi,xhdpi,xxhdpi ...)但是当我使用像nexus 6P这样的设备时我得到了这个:Picture 1 - Nexus 6P)当我使用nexus 10时我就是得到了(Picture 2 - Nexus 10P)。 问题是,这些设备在xxhdpi中,但它们没有相同的分辨率。
对于每个按钮,我使用这个xml代码:
public class MainActivity extends ActionBarActivity {
Handler handler = new Handler();
ArrayList<String> toastMQ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
toastMQ = new ArrayList<String>();
setContentView(R.layout.activity_main);
toastMQ.add("Message1");
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
callToast1();
PreSleepToast pst = new PreSleepToast();
pst.execute();
}
private Runnable r = new Runnable() {
@Override
public void run() {
for( int i = 0; i < toastMQ.size(); i++ ){
Toast t = Toast.makeText(getApplicationContext(), toastMQ.get(i), Toast.LENGTH_SHORT);
t.show();
}
}
};
public class PreSleepToast extends AsyncTask<Void, byte[], Void> {
/**
* The sender socket on which we send connections.
*/
public PreSleepToast() {
}
/**
* Polling loop for outgoing connections.
*/
@Override
protected Void doInBackground(Void... params) {
handler.post(r);
return null;
};
};
public void callToast1(){
toastMQ.add("Message2");
}
}
我不明白为什么他们没有重新调整。
亲切
答案 0 :(得分:0)
问题是你给出了宽度和高度的硬核尺寸值,在这种情况下,图像取自hdpi xhdpi其他任何东西,但你需要在dimen值文件夹值21中定义每个维度值,值小,值大一旦你设置我认为你可以看到你最好的结果
并访问: - How to define dimens.xml for every different screen size in android?
答案 1 :(得分:0)
你应该使用layout_width =“match_parent”并在imageview中添加adjustViewBounds =“true”,并让高度为wrap_content。