Android 자바 코드 레이아웃 의 activity

3128 단어 Activity
activity 는 항상 xml 의 레이아웃 파일 이 대응 해 야 한 다 는 것 을 알 고 있 습 니 다. 그러나 이 xml 이 없 으 면 Java 코드 에서 간단하게 이 루어 집 니 다. 즉, 이 레이아웃 을 담당 하 는 xml 는 지금 제 가 그 를 쓰 지 않 습 니 다.자바 가 직접 생 성 을 도와 주 는 것 입 니 다. 어떤 친구 들 은 필요 하 냐 고 물 을 것 입 니 다. 자바 류 만 써 서 xml 레이아웃 과 같은 기능 을 하지 않 습 니 다.그러나 실제로 많은 경우 에 우리 의 화면 이 완전히 변 하지 않 는 다. 만약 에 하나의 view 에서 대량의 변화 가 발생 하면 원래 의 xml 도 닭 갈비 가 된다.그리고 우리 가 쓴 activity 하 나 를 JAR 가방 으로 봉 하려 고 하면 남 은 xml 이 군더더기 가 될 수 있 습 니 다.이 문 제 를 해결 하기 위해 서 스스로 약간의 테스트 를 했다.효과 가 이 문 제 를 간단하게 해결 할 수 있 을 것 같 아서 보 내 드 리 니 참고 하 시기 바 랍 니 다.
activity 에서 재 작성 한 onCreate 방법 에서 레이아웃 파일 을 setContentView (R. layot. XXXX) 에 지정 해 야 합 니 다.지금 우 리 는 이 지정 한 xml 를 포기 합 니 다.
자바 코드:
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class IndexActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		newView view = newView.buildView(IndexActivity.this);
		//       xml   ,           
		setContentView(view);
		Resources res = getResources();
		//        
		Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.back_1);
		BitmapDrawable bmp1 = new BitmapDrawable(bmp);
		view.imageView.setImageDrawable(bmp1);
	}

	//      LinearLayout  ,           ,        
	static class newView extends LinearLayout {
		private ImageView imageView;

		public newView(Context c) {
			super(c);
			/*
			 *        ImageView   , TextView EditText Button
			 *                addView()   ,   ,           
                         *xml        。
			 */
			imageView = new ImageView(c);
			/*
			 *            ,  ,    ,      android   api    
                         *   ,         
			 *  TextView mTitle = new TextView(c); 
			 * //     
			 * mTitle.setText(title); 
			 * //  
			 * mTitle.setGravity(Gravity.CENTER); 
			 * //    
			 * mTitle.setTextColor(Color.WHITE);
		         *
			 * addView         ,         ,                
			 * addView(mTitle, new LinearLayout.LayoutParams( 
                         * LayoutParams.WRAP_CONTENT,
			 * LayoutParams.WRAP_CONTENT,Gravity.CENTER_HORIZONTAL));
			 */
			addView(imageView);
			/*
			 *   LinearLayout       ,               ,       
			 *  :setBackgroundResource(imgId); setPadding(0, 8, 0, 8); 
			 */
		}

		public static newView buildView(Context c) {
			return new newView(c);
		}
	}
}

좋은 웹페이지 즐겨찾기