我是Android UI的新手,我正在寻找有关设计UI的最佳实践的一些资源(UI元素,教程等的示例)
我一直在谷歌或http://developer.android.com/resources/tutorials,但没有任何帮助.
任何人都可以提供一些资源/链接吗?
我正在尝试使用Fragment,ViewPager和co.来自Android支持库v4.当我从寻呼机收听页面更改事件但是内容不可见时,片段似乎会滚动.我基本上有:
FragmentActivity:
public class MyActivity extends FragmentActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FragmentPagerAdapter fpa = new MyPagerAdapter(this, createFragments());
ViewPager vp = (ViewPager) findViewById(R.id.pager);
vp.setAdapter(fpa);
}
private List<Fragment> createFragments() {
List<Fragment> list = new ArrayList<Fragment>();
list.add(Fragment.instantiate(this, First.class.getName()));
list.add(Fragment.instantiate(this, Second.class.getName()));
list.add(Fragment.instantiate(this, Third.class.getName()));
return list;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
}
Run Code Online (Sandbox Code Playgroud)
FragmentPagerAdapter:
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyPagerAdapter(FragmentActivity activity, List<Fragment> fragments) {
super(activity.getSupportFragmentManager());
this.fragments = fragments;
}
@Override
public Fragment getItem(int i) …Run Code Online (Sandbox Code Playgroud) 如果您向自己添加了标签ActionBar,它们将以ActionBar纵向模式在手机上进行额外堆叠.有没有一种简单的方法可以确定是否发生了这种情况?
我附上了YouTube应用的两个屏幕截图.第一个显示法线ActionBar,其中有标签,第二个显示堆叠的标签ActionBar.

我有一个Android ListView的自定义单元格.此自定义单元格是一个相对布局,其中包含一些视图.每个单元格之间有一个空格,所以我想在单元格的底部添加一个阴影.
我一直在谷歌搜索但找不到任何东西?我想实现与此类似的东西:

谢谢!
我很确定这个问题已经在某个地方得到了回答.这似乎太常见了.但我找不到答案.我也不能找出解决方案.
这是问题所在:
我希望我的一个TableRow具有不同的背景颜色.这很简单,我只需要添加
android:background="#123456"
Run Code Online (Sandbox Code Playgroud)
在TableRow的XML声明中.但是,我也希望我的应用程序有两个主题.在另一个主题中,TableRow应该具有不同的背景颜色.我找不到在主题中定义颜色值并使用它的方法.我想输入这样的东西:
<style name="Theme.MyApp" parent="@style/Theme.Light">
<color "my_cool_color">#123456</color>
</style>
<style name="Theme.MyApp.Dark" parent="@style/Theme.Dark">
<color "my_cool_color">#654321</color>
</style>
Run Code Online (Sandbox Code Playgroud)
并且,在TableRow的声明中:
android:background="@color/my_cool_color"
Run Code Online (Sandbox Code Playgroud)
因此,当我更改主题时,TableRow的背景颜色也会发生变化.我已经尝试了很多个小时并且没有成功......我没有尝试的一件事是基于TableRow创建我自己的小部件并为它声明一个单独的样式 - 我认为这应该有用,但它是对于这么简单的问题来说,这太重了
我想画一个动画.为此,我扩展了View并覆盖了onDraw()方法.我所期待的是每次调用onDraw()时画布都会处于我留下的状态,我可以选择清除它或者只是绘制它的一部分(这是我使用SurfaceView时的工作原理) )但每次画布回来时都已清除.有没有办法让我无法清除它?或者可能将以前的状态保存到位图中,这样我就可以绘制该位图然后在其上方绘制?
是否有一个总是在onResume()之后调用的回调?我需要它,因为AFAIK,在onResume()之后,布局中的每个View都被渲染了,所以我可以测量它们的尺寸.
谢谢.
Android 4.0(ICS)有很多新的UI指南,非常棒.问题是,未来,我不确定如何为Android 4.0构建应用程序,并确保该应用程序在运行Android 2.2和2.3的设备上看起来相同/相似.
有Android兼容性库和向后兼容的Action Bar,但我一直在寻找一种更具体的解决方案,用于将ICS后应用程序移植到ICS之前的手机上.
我是在正确的轨道上吗?有人有什么想法?
android android-ui android-layout android-4.0-ice-cream-sandwich
如何反转线性布局的方向?
例如,如果我的布局是[view1,view2,view3],我想创建[view3,view2,view1].我的目标是从一个XML布局中扩展左手和右手实例.
我处于一种特殊的情况,我必须DatePicker根据a的所选元素改变最小和最大日期Spinner.这是我用来切换最小和最大日期的代码块.
private void switchCalculationMethod(int method) {
calculationMethod = method;
switch (method) {
case METHOD_1:
datePicker.setMinDate(new LocalDate().minusWeeks(42).getMillis());
datePicker.setMaxDate(new LocalDate().plusDays(1).getMillis() - 1);
break;
case METHOD_2:
datePicker.setMinDate(new LocalDate().minusWeeks(2).getMillis()); // This don't work!!
datePicker.setMaxDate(new LocalDate().plusWeeks(40).getMillis()); // This works!!!
break;
}
datePicker.init(today.getYear(), today.getMonthOfYear() - 1,
today.getDayOfMonth(), this);
}
Run Code Online (Sandbox Code Playgroud)
因此,DatePicker第一次正确设置,当我尝试再次更改最小日期(更改最大日期工作)时出现问题.它将保持我先设定的值.我在想这是一个错误.我在这里做错了吗?这有解决方法吗?
PS:我正在使用Joda时间api.