Android 自动换行添加控件
生活随笔
收集整理的這篇文章主要介紹了
Android 自动换行添加控件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
PS:轉(zhuǎn)載請注明出處,謝謝
最近在項目里面有幾個需要根據(jù)返回的數(shù)據(jù)來自動添加控件的地方,在網(wǎng)上找了一些,然后加上自己寫的一些,都一起整理完,然后給自己做個備注,啦啦啦啦啦啦~~~~
先貼一張鎮(zhèn)樓效果圖(效果圖不是很清晰,將就看了)
靜態(tài)的也來一張
PS:里面主要寫了三種樣式(不夠的話可以自己寫View替換),這里代碼就只展示第一種類型(太多了也展示不了,嘿嘿(關鍵是我想要分)),貼的代碼里面都有注解的,我就不寫了~~~~懶。
主要的控件生成代碼和滑動居中就已經(jīng)完成了,剩下的就是用法了
? 2. MainActivity.java實現(xiàn)功能效果
public class MainActivity extends AppCompatActivity {private final static String TAG = "MainActivity";private HorizontalScollTabHost tabHost;private List<String> mList;private String strTiele[] = new String[]{"頭條", "推薦", "關注", "視頻", "Java SE", "Android", "Html5", "我不喜歡"};private static String[] testName = {"日歷", "360", "三國", "消除", "播放器","游戲", "清理大師", "跑酷", "壁紙", "單機斗地主","捕魚達人3", "雷電2014(雷霆版)", "打車", "輸入法"};private String title;//private WarpLinearLayout warpLinearLayout;private Button btn;private AutoLayoutView layoutView;private List<AutoData> dataList;private String autoName[] = new String[]{"降龍", "黯然", "左右", "七十", "拈花", "蛤蟆", "吸星", "打狗", "醉拳"}; // String atuoUrl[]=new String[]{""};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tabHost = findViewById(R.id.tabhost);mList = new ArrayList<>();for (int i = 0; i < strTiele.length; i++) {mList.add(strTiele[i]);}tabHost.diaplay(mList);initWarpData();initAutoIcon();}private void initWarpData() {btn = (Button) findViewById(R.id.btn);warpLinearLayout = (WarpLinearLayout) findViewById(R.id.warpLinearLayout);for (int j = 0; j < 11; j++) {int n = new Random().nextInt(10) + 5;StringBuffer stringBuffer = new StringBuffer();Random random = new Random();Log.i(TAG, "n=" + n);for (int i = 0; i < n; i++) {stringBuffer.append((char) (65 + random.nextInt(26)));Log.i(TAG, "StringBuffer=" + stringBuffer.toString());}final TextView tv = new TextView(MainActivity.this);tv.setText(stringBuffer.toString() + "000");tv.setBackgroundResource(R.drawable.shape_text_border);tv.setTextColor(getResources().getColor(R.color.black));tv.setPadding(10, 10, 10, 10);warpLinearLayout.addView(tv);tv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "$ - " + tv.getText().toString() + " - $", Toast.LENGTH_SHORT).show();}});}/*** 單個添加*//*btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int n = new Random().nextInt(10) + 5;StringBuffer stringBuffer = new StringBuffer();Random random = new Random();for (int i = 0; i < n; i++) {stringBuffer.append((char) (65 + random.nextInt(26)));}TextView tv = new TextView(MainActivity.this);tv.setText(stringBuffer.toString() + "000");tv.setBackgroundResource(R.drawable.shape_text_border);tv.setPadding(10, 10, 10, 10);warpLinearLayout.addView(tv);}});*/}private void initAutoIcon() {layoutView = findViewById(R.id.autoView);dataList = new ArrayList<AutoData>();for (int i = 0; i < autoName.length; i++) {AutoData autoData = new AutoData();autoData.setName(autoName[i]);autoData.setUrl("http://qcloudimg.ichongxin.com/menuicon/qiguantubiao/yimiao.png");dataList.add(autoData);}layoutView.addData(dataList);layoutView.setOnFlowLayoutListener(new AutoLayoutView.FlowLayoutListener() {@Overridepublic void onItemClick(View view, int poition) {Toast.makeText(MainActivity.this, "--> " + dataList.get(poition).getName() + " <--", Toast.LENGTH_SHORT).show();}});}// private final int SWITCH_PAGE = 0x00123; // // Handler mHandler = new Handler() { // @Override // public void handleMessage(Message msg) { // super.handleMessage(msg); // switch (msg.what) { // case SWITCH_PAGE: // //接收dialog點擊以后得返回數(shù)據(jù) // title = msg.getData().getString("type_name"); // Log.i(TAG, "handleMessage: " + title); // break; // } // } // }; }最后在貼上布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:gravity="center|left"android:text="滑動控件居中顯示"android:textColor="#000" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#FFF"><com.auto.widget.view.HorizontalScollTabHostandroid:id="@+id/tabhost"android:layout_width="match_parent"android:layout_height="40dp"android:layout_marginRight="48dp"android:layout_marginTop="5dp" /><ImageViewandroid:id="@+id/mall_more_image"android:layout_width="45dp"android:layout_height="35dp"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:layout_marginBottom="8dp"android:layout_marginTop="8dp"android:src="@mipmap/more" /></RelativeLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:text="自動換行顯示控件(根據(jù)布局或者單個控件來顯示)"android:textColor="#000" /><Buttonandroid:id="@+id/btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="add"android:textSize="20dp"android:visibility="gone" /><com.auto.widget.view.WarpLinearLayoutandroid:id="@+id/warpLinearLayout"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/btn"android:background="#FFF"android:padding="10dp"app:grivate="left"app:horizontal_Space="10dp"app:isFull="false"app:vertical_Space="10dp"></com.auto.widget.view.WarpLinearLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:text="自動換行顯示圖標控件(同上)"android:textColor="#000" /><com.auto.widget.view.AutoLayoutViewandroid:id="@+id/autoView"android:layout_width="wrap_content"android:layout_height="wrap_content"></com.auto.widget.view.AutoLayoutView><Viewandroid:layout_width="match_parent"android:layout_height="20dp" /></LinearLayout></ScrollView> </RelativeLayout>第一個功能的全部代碼就已經(jīng)全部貼完了,最后附上下載鏈接:
CSDN(跪求有分的大佬下載這個,攢點分^_^):https://download.csdn.net/download/wjilikely/10596183
GitHub:https://github.com/wangjiand/AutoLayoutView-master
總結
以上是生活随笔為你收集整理的Android 自动换行添加控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目二--Time类
- 下一篇: OpenGL ES SDK for An