【问题标题】:How to set a handle button in slider content in android?如何在android的滑块内容中设置手柄按钮?
【发布时间】:2014-06-14 02:45:02
【问题描述】:

我正在使用 android。我在我的应用程序中使用了 slider library

现在我想添加一个按钮来处理幻灯片活动,这样我就可以像图片中一样滑动内容和按钮来打开和关闭。关闭幻灯片菜单后,按钮将出现在活动前面。

我不知道这是否可能。

如果你熟悉这个库,请帮助我,在此先感谢:)

我使用以下代码访问滑块内容

       SlidingMenu menu = new SlidingMenu(this);
    menu.setMode(SlidingMenu.LEFT);
    menu.setApp_id("ads");
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setSecondaryMenu(R.layout.slide);

【问题讨论】:

  • 请发布您的代码。
  • @T-Rush 查看我的新编辑
  • 你能发布 slide.xml 吗?
  • slide.xml 只是一个xml文件,它不包含sliderdrawer
  • menu.setSecondaryMenu 和 menu.setMenu 都一样吧??

标签: android slider drawer


【解决方案1】:

如果您主要关心的是在 Layout 上添加图像,那么您可以做一些类似的事情..

步骤(1) 使用RelativeLayout 作为您的父母。

Step(2) 对于您的图像视图,像这样使用 ..

<ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/content_frame"
                android:layout_alignParentTop="@+id/content_frame"
                android:layout_centerInParent="true"
                android:src="@drawable/slider" />

Step(3) 现在在您的 java 类中获取此图像视图的 id 并将 setOnClickListener 放入其中。 现在单击只需将您定义的代码关闭和打开。一定要检查它是抽屉打开然后关闭抽屉,如果抽屉关闭则打开抽屉。

除此之外,我会建议你使用 ActionBar NavigationDrawer 来做同样的事情。它使用起来非常方便。

我在我的一个项目中使用 Navigation Drawer 执行了相同的操作 .. 它的工作方式非常有魅力。

希望对你有帮助。

编辑

如果您使用 ActionBar NavigationDrawer 或其他任何东西,那么您的首选布局应如下所示..

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true" >

                <fragment
                    android:id="@+id/map"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    class="com.google.android.gms.maps.SupportMapFragment" />

            </FrameLayout>

            <ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/content_frame"
                android:layout_alignParentTop="@+id/content_frame"
                android:layout_centerInParent="true"
                android:src="@drawable/ic_launcher" />



        </RelativeLayout>




        <ListView
            android:id="@+id/listview_drawer_two"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:background="@color/taxi_list_light"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="2dp" />

    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>

只需将此布局复制并粘贴到新的 XML 文件中.. 看看它的样子..

更多关于这个,我建议你看看这个教程..http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

希望对你有帮助!

【讨论】:

  • 我使用了导航抽屉。但是如何将导航按钮放置在我的自定义位置。有什么想法吗??
  • 正如我所提到的,您需要使用 RelativeLayout 并按照我提到的那样放置您的 IV .. 请放置您的布局部分 ..
  • 检查我使用的库(上面的链接)并告诉我你是否有任何想法......因为我需要从一个库项目中调用它..
  • 我的意思是我使用库从后面使用幻灯片内容..但是我需要屏幕前面的按钮作为后面视图的一部分,我可以滑动按钮来查看幻灯片内容。它应该从库调用所以.. 我需要将按钮代码作为库中的内容
【解决方案2】:

试试这个链接,它会帮助你: Left to Right Sliding Drawer Creation in Android

<?xml version="1.0" encoding="utf-8"?>

        <LinearLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="horizontal"
         android:gravity="center_vertical"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">

         <balaji.slidingdrawer_lr.Transparent
             android:id="@+id/popup_window"
             android:orientation="vertical"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:gravity="left"
             android:padding="30px">

             <TextView
          android:id="@+id/textView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
          android:textColor="#000000"
              android:textSize="20dp"
              android:paddingTop="20dp"
              android:paddingBottom="20dp"
              android:text="Left to Right Sliding" />

             <CheckBox 
              android:id="@+id/checkBox1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:textSize="17dp"
          android:text="Jelly Bean" />

             <CheckBox 
              android:id="@+id/checkBox2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:textSize="17dp"
          android:text="Ice Cream Sandwich" />

             <CheckBox 
              android:id="@+id/checkBox3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:textSize="17dp"
          android:text="HoneyComb" />

         </balaji.slidingdrawer_lr.Transparent>

         <Button 
             android:id="@+id/handle"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="Handle"/>

        </LinearLayout>

这是从左到右滑动抽屉的布局。 您还需要 balaji.slidingdrawer_lr.Transparent 。这是它的代码:

package balaji.slidingdrawer_lr;

    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.RectF;
    import android.graphics.Paint.Style;
    import android.util.AttributeSet;
    import android.widget.LinearLayout;

    public class Transparent extends LinearLayout 
    {
     private Paint innerPaint, borderPaint ;

     public Transparent(Context context, AttributeSet as) {
      super(context, as);
      init();
     }

     public Transparent(Context context) {
      super(context);
      init();
     }

     private void init() {
      innerPaint = new Paint();
      innerPaint.setARGB(225, 75, 75, 255); 
      innerPaint.setAntiAlias(true);
      borderPaint = new Paint();
      borderPaint.setARGB(255, 255, 255, 255);
      borderPaint.setAntiAlias(true);
      borderPaint.setStyle(Style.STROKE);
      borderPaint.setStrokeWidth(20);
     }

     public void setInnerPaint(Paint innerPaint) {
      this.innerPaint = innerPaint;
     }

     public void setBorderPaint(Paint borderPaint) {
      this.borderPaint = borderPaint;
     }

     @Override
     protected void dispatchDraw(Canvas canvas) {
      RectF drawRect = new RectF();
      drawRect.set(0,0, getMeasuredWidth(), getMeasuredHeight());
      canvas.drawRoundRect(drawRect, 5, 5, innerPaint);
      canvas.drawRoundRect(drawRect, 5, 5, borderPaint);
      super.dispatchDraw(canvas);
            }
    }

您需要这两个文件来满足您的需要。 希望这会对你有所帮助。

【讨论】:

    【解决方案3】:

    通过在错误消息中设置可扩展字符串或扩展 EditText 并覆盖您自己的错误绘制机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多