Skip to content

Commit

Permalink
添加用代码设置属性的方式
Browse files Browse the repository at this point in the history
  • Loading branch information
MZCretin committed Mar 9, 2018
1 parent d0a82a5 commit 5a8fec7
Show file tree
Hide file tree
Showing 5 changed files with 547 additions and 136 deletions.
39 changes: 38 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,44 @@
typenum必传
typenum必传
typenum必传

四、应用户要求,需要实现用代码设置这些属性,现在已实现

请注意:
使用这种方式需要在引入布局文件的时候在布局文件中设置mTypeNums = -1 来告诉我你现在要用代码传入这些属性
使用这种方式需要在引入布局文件的时候在布局文件中设置mTypeNums = -1 来告诉我你现在要用代码传入这些属性
使用这种方式需要在引入布局文件的时候在布局文件中设置mTypeNums = -1 来告诉我你现在要用代码传入这些属性

重要的事情说三遍

例如
<com.cretin.www.wheelsruflibrary.view.WheelSurfView
android:id="@+id/wheelSurfView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
wheelSurfView:typenum="-1"
android:layout_margin="20dp">

请注意:
你在传入所有的图标文件之后需要调用 WheelSurfView.rotateBitmaps() 此方法来处理一下你传入的图片
你在传入所有的图标文件之后需要调用 WheelSurfView.rotateBitmaps() 此方法来处理一下你传入的图片
你在传入所有的图标文件之后需要调用 WheelSurfView.rotateBitmaps() 此方法来处理一下你传入的图片

重要的事情说三遍

然后调用setConfig()方法来设置你的属性

请注意:
.setmColors(colors)
.setmDeses(des)
.setmIcons(mListBitmap)
这三个方法中的参数长度必须一致 否则会报运行时异常

如果需要此功能,请使用最新的版本
```
compile 'com.github.MZCretin:WheelSurfDemo:v1.1.0'
```

-------------------

### 效果预览
Expand Down
102 changes: 102 additions & 0 deletions app/src/main/java/com/cretin/www/wheelsurfdemo/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import android.animation.ValueAnimator;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
Expand All @@ -11,6 +14,8 @@
import com.cretin.www.wheelsruflibrary.listener.RotateListener;
import com.cretin.www.wheelsruflibrary.view.WheelSurfView;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class MainActivity extends AppCompatActivity {
Expand Down Expand Up @@ -104,5 +109,102 @@ public void onClick(DialogInterface dialog, int which) {

}
});


/**
* 新增使用代码设置属性的方式
*
* 请注意:
* 使用这种方式需要在引入布局文件的时候在布局文件中设置mTypeNums = -1 来告诉我你现在要用代码传入这些属性
* 使用这种方式需要在引入布局文件的时候在布局文件中设置mTypeNums = -1 来告诉我你现在要用代码传入这些属性
* 使用这种方式需要在引入布局文件的时候在布局文件中设置mTypeNums = -1 来告诉我你现在要用代码传入这些属性
*
* 重要的事情说三遍
*
* 例如
* <com.cretin.www.wheelsruflibrary.view.WheelSurfView
* android:id="@+id/wheelSurfView2"
* android:layout_width="match_parent"
* android:layout_height="match_parent"
* wheelSurfView:typenum="-1"
* android:layout_margin="20dp">
*
* 然后调用setConfig()方法来设置你的属性
*
* 请注意:
* 你在传入所有的图标文件之后需要调用 WheelSurfView.rotateBitmaps() 此方法来处理一下你传入的图片
* 你在传入所有的图标文件之后需要调用 WheelSurfView.rotateBitmaps() 此方法来处理一下你传入的图片
* 你在传入所有的图标文件之后需要调用 WheelSurfView.rotateBitmaps() 此方法来处理一下你传入的图片
*
* 重要的事情说三遍
*
* 请注意:
* .setmColors(colors)
* .setmDeses(des)
* .setmIcons(mListBitmap)
* 这三个方法中的参数长度必须一致 否则会报运行时异常
*/
//颜色
Integer[] colors = new Integer[]{Color.parseColor("#fef9f7"), Color.parseColor("#fbc6a9")
, Color.parseColor("#ffdecc"), Color.parseColor("#fbc6a9")
, Color.parseColor("#ffdecc"), Color.parseColor("#fbc6a9")
, Color.parseColor("#ffdecc")};
//文字
String[] des = new String[]{"王 者 皮 肤", "1 8 0 积 分", "L O L 皮 肤"
, "谢 谢 参 与", "2 8 积 分", "微 信 红 包",
"5 Q 币"};
//图标
List<Bitmap> mListBitmap = new ArrayList<>();
for ( int i = 0; i < colors.length; i++ ) {
mListBitmap.add(BitmapFactory.decodeResource(getResources(), R.mipmap.iphone));
}
//主动旋转一下图片
mListBitmap = WheelSurfView.rotateBitmaps(mListBitmap);

//获取第三个视图
final WheelSurfView wheelSurfView2 = findViewById(R.id.wheelSurfView2);
WheelSurfView.Builder build = new WheelSurfView.Builder()
.setmColors(colors)
.setmDeses(des)
.setmIcons(mListBitmap)
.setmType(1)
.setmTypeNum(7)
.build();
wheelSurfView2.setConfig(build);

//添加滚动监听
wheelSurfView2.setRotateListener(new RotateListener() {
@Override
public void rotateEnd(int position, String des) {
Toast.makeText(MainActivity.this, "结束了 位置:" + position + " 描述:" + des, Toast.LENGTH_SHORT).show();
}

@Override
public void rotating(ValueAnimator valueAnimator) {

}

@Override
public void rotateBefore(ImageView goImg) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("温馨提示");
builder.setMessage("确定要花费100积分抽奖?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//模拟位置
int position = new Random().nextInt(7) + 1;
wheelSurfView2.startRotate(position);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();

}
});
}
}
19 changes: 18 additions & 1 deletion app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
wheelSurfView:icons="@array/icons"
wheelSurfView:minTimes="3"
wheelSurfView:textColor="#FF0000"
wheelSurfView:textSize="16sp"
wheelSurfView:type="1"
wheelSurfView:typenum="7"
wheelSurfView:vartime="75">
Expand Down Expand Up @@ -63,6 +62,24 @@

</com.cretin.www.wheelsruflibrary.view.WheelSurfView>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:gravity="center"
android:padding="10dp"
android:text="用户通过代码来设置这些属性"
android:textStyle="bold"/>

<com.cretin.www.wheelsruflibrary.view.WheelSurfView
android:id="@+id/wheelSurfView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
wheelSurfView:typenum="-1"
android:layout_margin="20dp">

</com.cretin.www.wheelsruflibrary.view.WheelSurfView>

</LinearLayout>

</ScrollView>
Loading

0 comments on commit 5a8fec7

Please sign in to comment.