Htm*_*sin 6 android material-design
我已经搜索但没有找到任何关于如何使用背景的浮动按钮的教程或库,如下面在Skype中使用的那样.
我使用这些有关制作浮动按钮的教程来学习本教程.
https://github.com/codepath/android_guides/wiki/Floating-Action-Buttons,https://www.bignerdranch.com/blog/floating-action-buttons-in-android-l/,https://开头的github .COM /代码路径/ android_guides /维基/设计,支持库
编辑请阅读!
据@Simon说,我能够使用https://github.com/futuresimple/android-floating-action-button库来实现浮动按钮布局.但后来我因为无法在库函数内部设置相对布局背景色而陷入困境.
请参阅下面的浮动按钮的Java代码,我已经删除了其他按钮,让Skype看起来很像.
public class FloatButtonActivity extends Activity {
RelativeLayout brl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_float_button);
//final View actionB = findViewById(R.id.action_b);
ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
drawable.getPaint().setColor(getResources().getColor(R.color.white));
/* Button 3 */
final FloatingActionButton actionA = (FloatingActionButton) findViewById(R.id.action_a);
actionA.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(FloatButtonActivity.this, "Clicked on this button 3", Toast.LENGTH_LONG).show();
}
});
/* Button 2 */
final FloatingActionButton actionB = (FloatingActionButton) findViewById(R.id.action_b);
actionB.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(FloatButtonActivity.this, "Clicked on this button 2", Toast.LENGTH_LONG).show();
}
});
/* Button 1 */
FloatingActionButton actionC = new FloatingActionButton(getBaseContext());
actionC.setTitle("Button 1");
actionC.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FloatButtonActivity.this, "Clicked on this button 1", Toast.LENGTH_LONG).show();
}
});
final FloatingActionsMenu menuMultipleActions = (FloatingActionsMenu) findViewById(R.id.multiple_actions);
menuMultipleActions.addButton(actionC);
}
}
Run Code Online (Sandbox Code Playgroud)
这是下面的XML布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:background="@color/background"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/floatbutton_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:id="@+id/multiple_actions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
fab:fab_addButtonColorNormal="@color/white"
fab:fab_addButtonColorPressed="@color/white_pressed"
fab:fab_addButtonPlusIconColor="@color/half_black"
fab:fab_labelStyle="@style/menu_labels_style"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp">
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/action_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white"
fab:fab_title="Button 3"
fab:fab_colorPressed="@color/white_pressed"/>
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/action_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white"
fab:fab_title="Button 2"
fab:fab_colorPressed="@color/white_pressed"/>
</com.getbase.floatingactionbutton.FloatingActionsMenu>
</RelativeLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
问题:
有一个FloatingActionsMenu操作类,其OnClickListener设置为初始化按钮的toggle(). 我不允许在类中设置背景颜色,因为它不是具有相对布局的活动.请问我该怎么做?
mAddButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
toggle(); //This calls the other float buttons
Log.d("MSG: ", "In FloatingActionsMenu Class");
}
});
Run Code Online (Sandbox Code Playgroud)
但是我想要在Skype的APP中做些什么
我希望得到一个有关如何实现以下目标的分步指南.
因此,有一些库可以执行此操作,这里有一个这样的库,它完全可以完成您想做的事情: https: //github.com/futuresimple/android-floating-action-button
但是,如果您想以老式方式进行操作,也可以按照以下步骤来实现:
WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams();
p.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
p.dimAmount = 0.4f;
wm.updateViewLayout(parent, p);Run Code Online (Sandbox Code Playgroud)
您需要在其他 FAB 中设置动画,方法是对每个图标的 translateY 进行动画处理,以便在您单击主 FAB 时它会立即向上“飞行”。
然后,您可以为现在出现在屏幕上的每个新 FAB 设置 onClickListeners,以便当用户单击它们时它们具有逻辑。
这可能需要一些工作,所以如果您采用旧时尚方式,请准备好做一些研究 - 我会使用图书馆,而不是思考很多。
还有其他指南为您提供有关 FAB 的更多信息: https://guides.codepath.com/android/Floating-Action-Buttons
| 归档时间: |
|
| 查看次数: |
6048 次 |
| 最近记录: |