UI用着不习惯想刷小米UI有大神有线刷包么

请登陆后使用
只需一步,快速开始
请完成以下验证码
请完成以下验证码
吧友自助信息发布区,请自行甄别
查看: 1093|回复: 18
小米盒子的ui好难用觉得,大家刷的什么的
东西太多了,觉得好乱,我就想安app然后开机进入选择app页面,表哥们咋用呢
root 沙发管家
直接安装沙发桌面就行了
以前版本挺好看的,前几个月更新,难看了
以前版本挺好看的,前几个月更新,难看了
是呀,刚才手贱更新下,好乱
把常用的软件置顶到首页就行了&&你还是不会用啊&&自己研究吧
是呀,刚才手贱更新下,好乱
我用了三年左右小米盒子了,1月手贱点升级,那UI我看得想吐,做得跟乐视和其它品牌那样垃圾
我用了三年左右小米盒子了,1月手贱点升级,那UI我看得想吐,做得跟乐视和其它品牌那样垃圾
乐视原来不错的,现在做的也是太复杂了,看的闹心
小米盒子现在值多少钱啊,宜泉撸的想转手
把常用的软件置顶到首页就行了&&你还是不会用啊&&自己研究吧
这个也可以?求方法
把常用的软件置顶到首页就行了&&你还是不会用啊&&自己研究吧
亲,没有这个功能呀,找了半天
这个也可以?求方法
软件排序&&置顶&&选择置顶的软件
亲,没有这个功能呀,找了半天
软件排序 置顶 选择置顶的软件
Powered by后使用快捷导航没有帐号?
其他登录方式
—— 新手入门 ——
—— 智友精华 ——
查看: 695|回复: 5
在线时间561 小时最后登录阅读权限30UID7387548注册时间积分1053精华0
, 积分 1053, 距离下一级还需 147 积分
主题帖子 金币1246 元 智豆18 点
虽然都说锤子是炒作&&没实力 不过 毕竟才开始 一个新产物 给人家一个发展的时间和空间会怎么样呢 支持下 给人开发的动力 何尝不是好事 都是为安卓广大消费者付出哦{:237:}顶起!!!!!
在线时间742 小时最后登录阅读权限35UID6098540注册时间积分1461精华0
, 积分 1461, 距离下一级还需 339 积分
主题帖子 金币2017 元 智豆59 点
本帖最后由 孤独de奔跑 于
09:45 编辑
想多了,锤子是基于4.2的,还有就是720P
在线时间995 小时最后登录阅读权限40UID6498900注册时间积分2447精华0
俺的网名:小玉哥
, 积分 2447, 距离下一级还需 553 积分
主题帖子 金币553 元 智豆0 点
锤子,没用过。。用过别的系统还是不够MIUI厉害
在线时间382 小时最后登录阅读权限20UID8198015注册时间积分660精华0
, 积分 660, 距离下一级还需 40 积分
主题帖子 金币759 元 智豆0 点
智友移动版
锤子os是安卓4.2&&移植很困难啊
在线时间1179 小时最后登录阅读权限40UID1437747注册时间积分2064精华0
, 积分 2064, 距离下一级还需 936 积分
主题帖子 金币3475 元 智豆1 点
智友移动版
是啊,这个手机就算了
在线时间949 小时最后登录阅读权限40UID5255955注册时间积分1836精华0
, 积分 1836, 距离下一级还需 1164 积分
主题帖子 金币2148 元 智豆0 点
智友移动版
用过别的系统,还是ios厉害
关注微博并踩楼,5台售价259元的摩托罗拉高端路由器免费送!!!1563人阅读
android(89)
其实原理就是WindowManager Dialog 和Animation的组合
这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个)
实现功能:
可以在底部弹出的View里自定义布局;
可以自定义是否可以触摸外部消失;
可以自定义事件;
可以自定义外围背景是否透明;
可以自定义动画;
如果需要的话,可以强制为顶部View显示
1、下载BottomView.jar库文件,放到Android项目工程里的libs里
2、设置BottomView的Theme:
这2个Theme复制粘贴到你的项目的res/values/styles.xml里即可
&!--半透明背景Theme--&
& &&style name=&BottomViewTheme_Defalut&&
& && &&&&item name=&android:windowFrame&&@null&/item&
& && &&&&item name=&android:windowContentOverlay&&@null&/item&
& && &&&&item name=&android:windowIsFloating&&true&/item&
& && &&&&item name=&android:windowIsTranslucent&&false&/item&
& && &&&&item name=&android:windowNoTitle&&true&/item&
& && &&&&item name=&android:windowBackground&&@color/white&/item&
& && &&&&item name=&android:backgroundDimEnabled&&true&/item&
& && &&&&item name=&android:windowFullscreen&&true&/item&
& & &/style&
&!--透明背景Theme--&
& & &style name=&BottomViewTheme_Transparent&&
& && &&&&item name=&android:windowFrame&&@null&/item&
& && &&&&item name=&android:windowIsFloating&&true&/item&
& && &&&&!-- Transparent --&
& && &&&&item name=&android:windowIsTranslucent&&false&/item&
& && &&&&item name=&android:windowContentOverlay&&@null&/item&
& && &&&&item name=&android:windowNoTitle&&true&/item&
& && &&&&item name=&android:windowBackground&&@color/white&/item&
& && &&&&item name=&android:backgroundDimEnabled&&false&/item&
& & &/style&
另外如果提示
&item name=&android:windowBackground&&@color/white&/item&
这里的white找不到的话,说明你项目res/values/color.xml没有新建或者没有white颜色这个值,只需在res/values/color.xml里添加
& &&&&color name=&white&&#ffffff&/color&
这个白色值即可。
另外View的动画Theme可选,建议也复制进去,效果好一些,代码如下:
&font color=&#333333&&&font face=&Arial&& &style name=&BottomToTopAnim& parent=&android:Animation&&
& && &&&&item name=&@android:windowEnterAnimation&&@anim/bottomview_anim_enter&/item&
& && &&&&item name=&@android:windowExitAnimation&&@anim/bottomview_anim_exit&/item&
& & &/style&&/font&&/font&
res/anim/bottomview_anim_enter.xml
&?xml version=&1.0& encoding=&utf-8&?&
&set xmlns:android=&/apk/res/android& &
& & &translate
& && &&&android:duration=&500&
& && &&&android:fromYDelta=&100%p& /&
res/anim/bottomview_anim_exit.xml
&?xml version=&1.0& encoding=&utf-8&?&
&set xmlns:android=&/apk/res/android& &
& & &translate
& && &&&android:duration=&500&
& && &&&android:toYDelta=&100%p& /&
2、部分核心使用代码:
BottomView bottomView = new BottomView(this,
& & & & & & & & & & & & & & & & & & & & R.style.BottomViewTheme_Defalut, R.layout.bottom_view);
& & & & & & & & & & & & bottomView.setAnimation(R.style.BottomToTopAnim);//设置动画,可选
& & & & & & & & & & & & bottomView.showBottomView(false);
如果想获取这个View的话,调用.getView()方法即可。
效果图之一:(可随意发挥)
以下是源代码“:
package com.tandong.
import java.util.ArrayL
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.AdapterV
import android.widget.AdapterView.OnItemClickL
import android.widget.B
import android.widget.ListV
import com.tandong.bottomview.adapter.BVA
import com.tandong.bottomview.view.BottomV
* BottomView
* @author TanDong
public class MainActivity extends Activity implements OnClickListener {
private Button btn_
private ListView lv_menu_
private ArrayList&String&
private BottomView bottomV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
private void initData() {
menus = new ArrayList&String&();
menus.add(getResources().getString(R.string.menu_search));
menus.add(getResources().getString(R.string.menu_filemanage));
menus.add(getResources().getString(R.string.menu_downloadmanage));
menus.add(getResources().getString(R.string.menu_setting));
menus.add(getResources().getString(R.string.menu_about));
private void initView() {
btn_show = (Button) this.findViewById(R.id.btn_show);
btn_show.setOnClickListener(this);
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.btn_show:
bottomView = new BottomView(MainActivity.this,
R.style.BottomViewTheme_Defalut, R.layout.bottom_view);
bottomView.setAnimation(R.style.BottomToTopAnim);
bottomView.showBottomView(false);
lv_menu_list = (ListView) bottomView.getView().findViewById(
R.id.lv_list);
BVAdapter adapter = new BVAdapter(MainActivity.this, menus);
lv_menu_list.setAdapter(adapter);
lv_menu_list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& arg0, View arg1,
int arg2, long arg3) {
bottomView.dismissBottomView();
package com.tandong.bottomview.
import java.util.ArrayL
import android.content.C
import android.view.V
import android.view.ViewG
import android.widget.BaseA
import android.widget.TextV
import com.tandong.bottomview.R;
* BottomView
* @author TanDong
public class BVAdapter extends BaseAdapter {
private ArrayList&String&
public BVAdapter(Context context, ArrayList&String& als) {
this.alss =
public int getCount() {
// TODO Auto-generated method stub
return alss.size();
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return alss.get(arg0);
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
public View getView(int position, View convertView, ViewGroup arg2) {
convertView = View.inflate(c, R.layout.item, null);
TextView tv = (TextView) convertView.findViewById(R.id.tv_name);
tv.setText(alss.get(position));
return convertV
package com.tandong.bottomview.
import android.app.D
import android.content.C
import android.view.D
import android.view.V
import android.view.W
import android.view.WindowM
import android.view.WindowManager.LayoutP
public class BottomView
private View convertV
private int animationS
private boolean isTop =
public BottomView(Context c, int theme, View convertView)
this.theme =
this.context =
this.convertView = convertV
public BottomView(Context c, int theme, int resource) {
this.theme =
this.context =
this.convertView = View.inflate(c, resource, null);
public void showBottomView(boolean CanceledOnTouchOutside) {
if (this.theme == 0)
this.bv = new Dialog(this.context);
this.bv = new Dialog(this.context, this.theme);
this.bv.setCanceledOnTouchOutside(CanceledOnTouchOutside);
this.bv.getWindow().requestFeature(1);
this.bv.setContentView(this.convertView);
Window wm = this.bv.getWindow();
WindowManager m = wm.getWindowManager();
Display d = m.getDefaultDisplay();
WindowManager.LayoutParams p = wm.getAttributes();
p.width = (d.getWidth() * 1);
if (this.isTop)
p.gravity = 48;
p.gravity = 80;
if (this.animationStyle != 0)
wm.setWindowAnimations(this.animationStyle);
wm.setAttributes(p);
this.bv.show();
public void setTopIfNecessary() {
this.isTop =
public void setAnimation(int animationStyle) {
this.animationStyle = animationS
public View getView() {
return this.convertV
public void dismissBottomView() {
if (this.bv != null)
this.bv.dismiss();
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:394770次
积分:5972
积分:5972
排名:第3981名
原创:231篇
转载:132篇
评论:49条
(1)(2)(4)(14)(7)(8)(24)(16)(15)(20)(23)(4)(1)(2)(1)(4)(10)(6)(6)(6)(9)(4)(29)(3)(3)(6)(2)(22)(5)(18)(20)(13)(22)(33)(1)【最讨厌那些不开源的】小米的米UI的BOTTOMVIEW源码完美反编译
其实原理就是WindowManager Dialog 和Animation的组合
这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个)
实现功能:
可以在底部弹出的View里自定义布局;
可以自定义是否可以触摸外部消失;
可以自定义事件;
可以自定义外围背景是否透明;
可以自定义动画;
如果需要的话,可以强制为顶部View显示
1、下载BottomView.jar库文件,放到Android项目工程里的libs里
2、设置BottomView的Theme:
这2个Theme复制粘贴到你的项目的res/values/styles.xml里即可
&!--半透明背景Theme--&
&style name="BottomViewTheme_Defalut"&
&item name="android:windowFrame"&@null&/item&
&item name="android:windowContentOverlay"&@null&/item&
&item name="android:windowIsFloating"&true&/item&
&item name="android:windowIsTranslucent"&false&/item&
&item name="android:windowNoTitle"&true&/item&
&item name="android:windowBackground"&@color/white&/item&
&item name="android:backgroundDimEnabled"&true&/item&
&item name="android:windowFullscreen"&true&/item&
&!--透明背景Theme--&
&style name="BottomViewTheme_Transparent"&
&item name="android:windowFrame"&@null&/item&
&item name="android:windowIsFloating"&true&/item&
&!-- Transparent --&
&item name="android:windowIsTranslucent"&false&/item&
&item name="android:windowContentOverlay"&@null&/item&
&item name="android:windowNoTitle"&true&/item&
&item name="android:windowBackground"&@color/white&/item&
&item name="android:backgroundDimEnabled"&false&/item&
另外如果提示
&item name="android:windowBackground"&@color/white&/item&
这里的white找不到的话,说明你项目res/values/color.xml没有新建或者没有white颜色这个值,只需在res/values/color.xml里添加
&color name="white"&#ffffff&/color&
这个白色值即可。另外View的动画Theme可选,建议也复制进去,效果好一些,代码如下:
&font color="#333333"&&font face="Arial"& &style name="BottomToTopAnim" parent="android:Animation"&
&item name="@android:windowEnterAnimation"&@anim/bottomview_anim_enter&/item&
&item name="@android:windowExitAnimation"&@anim/bottomview_anim_exit&/item&
&/style&&/font&&/font&
res/anim/bottomview_anim_enter.xml
&?xml version="1.0" encoding="utf-8"?&
&set xmlns:android="/apk/res/android" &
&translate
android:duration="500"
android:fromYDelta="100%p" /&
res/anim/bottomview_anim_exit.xml
&?xml version="1.0" encoding="utf-8"?&
&set xmlns:android="/apk/res/android" &
&translate
android:duration="500"
android:toYDelta="100%p" /&
2、部分核心使用代码:
BottomView bottomView = new BottomView(this,
R.style.BottomViewTheme_Defalut, R.layout.bottom_view);
bottomView.setAnimation(R.style.BottomToTopAnim);//设置动画,可选
bottomView.showBottomView(false);
如果想获取这个View的话,调用.getView()方法即可。
效果图之一:(可随意发挥)
以下是源代码“:
package com.tandong.
import java.util.ArrayL
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.AdapterV
import android.widget.AdapterView.OnItemClickL
import android.widget.B
import android.widget.ListV
import com.tandong.bottomview.adapter.BVA
import com.tandong.bottomview.view.BottomV
* BottomView
* @author TanDong
public class MainActivity extends Activity implements OnClickListener {
private Button btn_
private ListView lv_menu_
private ArrayList&String&
private BottomView bottomV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
private void initData() {
menus = new ArrayList&String&();
menus.add(getResources().getString(R.string.menu_search));
menus.add(getResources().getString(R.string.menu_filemanage));
menus.add(getResources().getString(R.string.menu_downloadmanage));
menus.add(getResources().getString(R.string.menu_setting));
menus.add(getResources().getString(R.string.menu_about));
private void initView() {
btn_show = (Button) this.findViewById(R.id.btn_show);
btn_show.setOnClickListener(this);
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.btn_show:
bottomView = new BottomView(MainActivity.this,
R.style.BottomViewTheme_Defalut, R.layout.bottom_view);
bottomView.setAnimation(R.style.BottomToTopAnim);
bottomView.showBottomView(false);
lv_menu_list = (ListView) bottomView.getView().findViewById(
R.id.lv_list);
BVAdapter adapter = new BVAdapter(MainActivity.this, menus);
lv_menu_list.setAdapter(adapter);
lv_menu_list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& arg0, View arg1,
int arg2, long arg3) {
bottomView.dismissBottomView();
package com.tandong.bottomview.
import java.util.ArrayL
import android.content.C
import android.view.V
import android.view.ViewG
import android.widget.BaseA
import android.widget.TextV
import com.tandong.bottomview.R;
* BottomView
* @author TanDong
public class BVAdapter extends BaseAdapter {
private ArrayList&String&
public BVAdapter(Context context, ArrayList&String& als) {
this.alss =
public int getCount() {
// TODO Auto-generated method stub
return alss.size();
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return alss.get(arg0);
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
public View getView(int position, View convertView, ViewGroup arg2) {
convertView = View.inflate(c, R.layout.item, null);
TextView tv = (TextView) convertView.findViewById(R.id.tv_name);
tv.setText(alss.get(position));
return convertV
package com.tandong.bottomview.
import android.app.D
import android.content.C
import android.view.D
import android.view.V
import android.view.W
import android.view.WindowM
import android.view.WindowManager.LayoutP
public class BottomView
private View convertV
private int animationS
private boolean isTop =
public BottomView(Context c, int theme, View convertView)
this.theme =
this.context =
this.convertView = convertV
public BottomView(Context c, int theme, int resource) {
this.theme =
this.context =
this.convertView = View.inflate(c, resource, null);
public void showBottomView(boolean CanceledOnTouchOutside) {
if (this.theme == 0)
this.bv = new Dialog(this.context);
this.bv = new Dialog(this.context, this.theme);
this.bv.setCanceledOnTouchOutside(CanceledOnTouchOutside);
this.bv.getWindow().requestFeature(1);
this.bv.setContentView(this.convertView);
Window wm = this.bv.getWindow();
WindowManager m = wm.getWindowManager();
Display d = m.getDefaultDisplay();
WindowManager.LayoutParams p = wm.getAttributes();
p.width = (d.getWidth() * 1);
if (this.isTop)
p.gravity = 48;
p.gravity = 80;
if (this.animationStyle != 0)
wm.setWindowAnimations(this.animationStyle);
wm.setAttributes(p);
this.bv.show();
public void setTopIfNecessary() {
this.isTop =
public void setAnimation(int animationStyle) {
this.animationStyle = animationS
public View getView() {
return this.convertV
public void dismissBottomView() {
if (this.bv != null)
this.bv.dismiss();

我要回帖

 

随机推荐