android TV開發:彈出選單實現
阿新 • • 發佈:2019-02-02
1.在有時候我們需要選擇排序方式,在電視開發中往往使用一個彈出選單實現,Demo效果:
2.核心程式碼:
3.demo原始碼+apk 下載public class MainActivity extends Activity { private PopupWindow popupWindow; private View contentView; private Button btn; //... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //... createPopWindow();//初始化彈出介面 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //從底部顯示 popupWindow.showAtLocation(contentView, Gravity.BOTTOM, 0, 0); } }); } private void createPopWindow() { contentView = LayoutInflater.from(MainActivity.this).inflate(R.layout.pop_window, null); //設定彈出框的寬度和高度 popupWindow = new PopupWindow(contentView, ViewGroup.LayoutParams.MATCH_PARENT, 180); popupWindow.setFocusable(true);// 取得焦點 //注意 要是點選外部空白處彈框訊息 那麼必須給彈框設定一個背景色 不然是不起作用的 popupWindow.setBackgroundDrawable(new BitmapDrawable()); //點選外部消失 popupWindow.setOutsideTouchable(true); //設定可以點選 popupWindow.setTouchable(true); //進入退出的動畫 popupWindow.setAnimationStyle(R.style.mypopwindow_anim_style); reMen = (Button)contentView.findViewById(R.id.reMen); zuiXin = (Button)contentView.findViewById(R.id.zuiXin); pingFen = (Button)contentView.findViewById(R.id.pingFen); //是否選中的小圖示 img = (ImageView)contentView.findViewById(R.id.img); img2 = (ImageView)contentView.findViewById(R.id.img2); img3 = (ImageView)contentView.findViewById(R.id.img3); img2.setVisibility(View.INVISIBLE); img3.setVisibility(View.INVISIBLE); reMen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { img.setVisibility(View.VISIBLE); img2.setVisibility(View.INVISIBLE); img3.setVisibility(View.INVISIBLE); } }); pingFen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { img2.setVisibility(View.VISIBLE); img.setVisibility(View.INVISIBLE); img3.setVisibility(View.INVISIBLE); } }); zuiXin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { img3.setVisibility(View.VISIBLE); img2.setVisibility(View.INVISIBLE); img.setVisibility(View.INVISIBLE); } }); } }