2013-11-23 星期六
剧集下载要求弹出对话框,以网格形式将剧集显示出来。
使用android对话框时,有以下几个问题需要注意,先看代码片段
public AnthologyDialog(Context context, Display display, AnthologyListener anthologyListener) { super(context, R.style.AnthologyDialog); this.anthologyListener = anthologyListener; this.context = context; this.display = display; } @SuppressWarnings("deprecation") private void setDialogSize() { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.height = (int) (display.getHeight() * 0.8); //高度设置为屏幕的0.8 lp.width = (int) (display.getWidth() * 0.8); //宽度设置为屏幕的0.8 lp.alpha = 1f;//设置透明度 this.getWindow().setAttributes(lp); Logger.v(TAG, "@setDialogSize. width:"+lp.width+", height:"+lp.height); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_anthology); this.setDialogSize(); }}
1. 黑色边框的解决办法是在styles.xml文件中添加
2. 设定对话框大小:在onCreate方法中且设定ContentView后面修改LayoutParams对象的宽和高。
@SuppressWarnings("deprecation")private void setDialogSize() { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.height = (int) (display.getHeight() * 0.8); //高度设置为屏幕的0.8 lp.width = (int) (display.getWidth() * 0.8); //宽度设置为屏幕的0.8 lp.alpha = 1f;//设置透明度 this.getWindow().setAttributes(lp); Logger.v(TAG, "@setDialogSize. width:"+lp.width+", height:"+lp.height);}
剧集对象都存在列表对象中。根据index字段对剧集对象列表进行排序。
需要对ListView列表中的对象进行排序:
private static class MyComparator implements Comparator{ @Override public int compare(AnthologyData lhs, AnthologyData rhs) { return lhs.getIndex() - rhs.getIndex(); }}private void sortAnthologyList() { MyComparator comparator = new MyComparator(); Collections.sort(anthologyList, comparator);}
用lhs减去rhs表示升序排序。反之是降序排序。
private static class MyComparator implements Comparator{ @Override public int compare(AnthologyData lhs, AnthologyData rhs) { return rhs.getIndex() - lhs.getIndex(); }}
参考资料:
1. android自定义dialog
2. android自定义dialog
3. 设定对话框的尺寸
4. 设定对话框的尺寸
5. Android自定义对话框(Dialog)位置,大小
6. Android自定义对话框的大小
7. java List 排序 Collections.sort() 对 List 排序