欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android實(shí)現(xiàn)多個(gè)連續(xù)帶數(shù)字圓圈效果

有項(xiàng)目需求需要繪制多個(gè)圓圈,并且使用連續(xù)的數(shù)字對(duì)其排列起來(lái),也就是好多排的圓圈。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到惠城網(wǎng)站設(shè)計(jì)與惠城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋惠城地區(qū)。

首先看一下效果圖:

一排設(shè)置為8個(gè),一共有53個(gè)的:

Android實(shí)現(xiàn)多個(gè)連續(xù)帶數(shù)字圓圈效果

一排設(shè)值為5個(gè)的,一共有153個(gè):

Android實(shí)現(xiàn)多個(gè)連續(xù)帶數(shù)字圓圈效果

可以根據(jù)總的個(gè)數(shù)和每排個(gè)數(shù)自動(dòng)調(diào)節(jié)圓圈的大小,并且根據(jù)傳入的監(jiān)聽(tīng)事件作出不同的點(diǎn)擊效果。

思路很簡(jiǎn)單,首先需要畫一個(gè)圓出來(lái):

<?xml version="1.0" encoding="UTF-8"?>
<shape
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="oval"
 android:useLevel="false" >
 <padding
  android:left="1dp"
  android:top="1dp"
  android:right="1dp"
  android:bottom="1dp" />

 <stroke
  android:width="1dp"
  android:color="@android:color/black" />
 <size android:width="10dp"
   android:height="10dp" />
</shape>

然后創(chuàng)建TextView,設(shè)置TextView的背景為這個(gè)drawable即可。

可以根據(jù)屏幕的總寬度和每排需要放置的圓個(gè)數(shù),計(jì)算出每一個(gè)圓的合適大小,然后設(shè)置每個(gè)圓之間的margin為這個(gè)圓的十分之一,所以這個(gè)圓的最后大小應(yīng)該為平均值的十分之八。

然后使用LinearLayout布局,動(dòng)態(tài)加載多個(gè)TextView,每個(gè)TextView設(shè)置好對(duì)應(yīng)的屬性即可。

由于可能圓的個(gè)數(shù)過(guò)多,所以需要ScrollView來(lái)進(jìn)行嵌套,從而支持滑動(dòng)事件,需要注意的就是ScrollView下面只能有一個(gè)子節(jié)點(diǎn)。

完整代碼:

import android.content.Context;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

/**
 * Created by leafage on 2017/7/21.
 */

public class CircleView {

 private LinearLayout mMainLinearLayout;
 private ScrollView mScrollView;
 private LinearLayout mLinearLayout;
 private WindowManager mWindowManager;
 private Context mContext;

 //全屏參數(shù)
 LinearLayout.LayoutParams MatchParams = new LinearLayout.LayoutParams(
   ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

 //用來(lái)設(shè)置內(nèi)部LinearLayout的參數(shù),寬度適應(yīng)父布局,高度自動(dòng)
 LinearLayout.LayoutParams LinearLayoutParams = new LinearLayout.LayoutParams(
   ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

 //設(shè)置TextView的參數(shù)
 LinearLayout.LayoutParams TextViewParams = new LinearLayout.LayoutParams(
   LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);


 public CircleView(Context context) {
  mContext = context;
  mMainLinearLayout = new LinearLayout(context);
  mLinearLayout = new LinearLayout(context);
  mScrollView = new ScrollView(context);

  //用來(lái)得到總屏幕的寬度
  mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
  init();
 }

 private void init() {
  mLinearLayout.setOrientation(LinearLayout.VERTICAL);

  mMainLinearLayout.setLayoutParams(MatchParams);//最外面的全屏
  mScrollView.setLayoutParams(MatchParams);//滾動(dòng)的全屏
  mLinearLayout.setLayoutParams(MatchParams);//內(nèi)容的全屏
  mLinearLayout.setOrientation(LinearLayout.VERTICAL);//垂直放置

 }

 @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
 public LinearLayout getLinearLayout(int column, int count, View.OnClickListener onClickListener) {

  int row = count / column;//計(jì)算出多少排

  int duoyu = count - row * column;//計(jì)算出多余的個(gè)數(shù)

  int totalWidth = mWindowManager.getDefaultDisplay().getWidth();//得到總的寬度

  int width = totalWidth / column;//計(jì)算出每排的每個(gè)圓圈的平均寬度

  int margin = (int) (width*0.1);//設(shè)置邊距為0.1

  width = (int) (width * 0.8);//去掉左右邊距剩下的寬度

  int num = 1;//從1開(kāi)始計(jì)數(shù)


  TextViewParams.setMargins(margin, margin, margin, margin);

  for (int i = 0 ; i < row; i++) {//一共繪制多少排
   LinearLayout linearLayout = new LinearLayout(mContext);
   linearLayout.setLayoutParams(LinearLayoutParams);
   linearLayout.setOrientation(LinearLayout.HORIZONTAL);
   for (int j = 0; j < column; j++) {//一排繪制多少個(gè)
    final TextView textView = new TextView(mContext);
    textView.setBackground(mContext.getResources().getDrawable(R.drawable.cricle));
    textView.setHeight(width);
    textView.setWidth(width);
    textView.setGravity(Gravity.CENTER);
    textView.setText(String.valueOf(num));
    textView.setLayoutParams(TextViewParams);
    textView.setOnClickListener(onClickListener);//設(shè)置監(jiān)聽(tīng)事件
    linearLayout.addView(textView);
    num++;
   }
   mLinearLayout.addView(linearLayout);
  }

  //繪制剩下多余的一排
  LinearLayout linearLayout = new LinearLayout(mContext);
  linearLayout.setLayoutParams(LinearLayoutParams);
  linearLayout.setOrientation(LinearLayout.HORIZONTAL);

  for (int i = 0 ; i< duoyu;i++) {
   TextView textView = new TextView(mContext);
   textView.setBackground(mContext.getResources().getDrawable(R.drawable.cricle));
   textView.setHeight(width);
   textView.setWidth(width);
   textView.setGravity(Gravity.CENTER);
   textView.setText(String.valueOf(num));
   textView.setLayoutParams(TextViewParams);
   textView.setOnClickListener(onClickListener);
   linearLayout.addView(textView);
   num++;
  }

  mLinearLayout.addView(linearLayout);

  mScrollView.addView(mLinearLayout);

  mMainLinearLayout.addView(mScrollView);

  return mMainLinearLayout;
 }

}


可以直接在Activity里面使用:

import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity{

 private LinearLayout mMainLayout;

 @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  CircleView circle = new CircleView(this);

  mMainLayout = circle.getLinearLayout(8, 53, new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    Toast.makeText(MainActivity.this, "ID:" + ((TextView)view).getText(), Toast.LENGTH_SHORT).show();
   }
  });
  setContentView(mMainLayout);
 }

}

代碼結(jié)構(gòu):

Android實(shí)現(xiàn)多個(gè)連續(xù)帶數(shù)字圓圈效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

分享題目:Android實(shí)現(xiàn)多個(gè)連續(xù)帶數(shù)字圓圈效果
鏈接URL:http://aaarwkj.com/article0/jeipio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站排名、網(wǎng)頁(yè)設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
亚洲av丰满熟妇在线观看| 欧美伊人久久综合成人网| 国产成人在线免费短视频| 亚洲av乱码一区二区三四五六七| 亚洲永久免费黄色av| 日本韩国三级视频在线观看| 国产三级系列在线观看| 日本中文字幕免费一区| 午夜亚洲欧美日韩在线| 久久亚洲中文字幕丝袜长腿 | 97人妻人人澡人人添人人爽| av中文字幕啊嗯不要| 日韩精品电影一区在线观看| 亚洲av永久精品一区二区三区| 美女午夜福利精品视频| 日本少妇一区二区99| 国产中文字幕一区久久| 黑人爆操中国女孩在线观看| 天堂中文字幕在线乱码一区| 未满十八禁止下载软件| 欧美日本国产老熟女视频| 亚洲免费麻豆一区二区三区| 内射极品美女在线观看| 很色很污无遮挡的网色污| 亚洲av毛片在线免费播放| 国产毛片久久久久久国产| 青青草原成年人免费看| 久热精品视频在线观看| 成人免费激情在线观看| 97精品久久九九中文字幕| 怡红院一区二区三区毛片| 凹凸国产精品熟女视频| 一区二区在线视频中文字幕 | 国产亚洲理论片在线观看| 色综合亚洲一区二区小说| 亚洲人妻不卡一区二区| 亚洲一区二区三区四区五区六| 日韩欧美亚洲一区二区| 极品美女粉嫩啪啪高潮| 亚洲男人的天堂久久精品| 免费可以看的黄片欧美|